当前位置: 首页 > 知识库问答 >
问题:

为什么spring应用程序在tomcat和jetty服务器上工作,而在jboss服务器上用404响应?

黎震博
2023-03-14

我有一个在tomcat和jetty服务器上工作的spring web应用程序,但是当我将它部署在jboss服务器(7.1.1版本)上时,出现了一个错误404。

我在web.xml中的配置是

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">

    <display-name>rci_sof</display-name>


    <!-- Servlet de démarrage de l'application -->
    <servlet>
        <servlet-name>AppContextInitializerServlet</servlet-name>
        <servlet-class>com.rcibanque.sof.server.servlet.SofContextInitializerServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Services RPC -->
    <servlet>
        <servlet-name>dataServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.service.data.SofDataServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>dataServiceRPC</servlet-name>
        <url-pattern>/rci_sof/dataService.rpc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>dataServiceRPC</servlet-name>
        <url-pattern>/rci_admin/dataService.rpc</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>dataModuleServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.service.data.SofDataModuleServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>dataModuleServiceRPC</servlet-name>
        <url-pattern>/rci_sof/dataModuleService.rpc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>dataModuleServiceRPC</servlet-name>
        <url-pattern>/rci_admin/dataModuleService.rpc</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>tariffingServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.service.tariffing.TariffingServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>tariffingServiceRPC</servlet-name>
        <url-pattern>/rci_sof/tariffingService.rpc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>tariffingServiceRPC</servlet-name>
        <url-pattern>/rci_admin/tariffingService.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC Chart -->
    <servlet>
        <servlet-name>chartRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.chart.ChartGeneratorImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>chartRPC</servlet-name>
        <url-pattern>/rci_sof/chart.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC Print Report -->
    <servlet>
        <servlet-name>printReportRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.print.report.SofPrintReportImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>printReportRPC</servlet-name>
        <url-pattern>/rci_sof/printReport.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC Mail -->
    <servlet>
        <servlet-name>messagingServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.print.messaging.SofMessagingServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>messagingServiceRPC</servlet-name>
        <url-pattern>/rci_sof/messagingService.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC TOPCAR -->
    <servlet>
        <servlet-name>topCarServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.service.topcar.TopCarService</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>topCarServiceRPC</servlet-name>
        <url-pattern>/rci_sof/topCarService.rpc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>topCarServiceRPC</servlet-name>
        <url-pattern>/rci_admin/topCarService.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC Fiscalité CO2 -->
    <servlet>
        <servlet-name>fiscaliteCO2</servlet-name>
        <servlet-class>com.rcibanque.socle.server.service.data.FiscaliteCO2Service</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>fiscaliteCO2</servlet-name>
        <url-pattern>/rci_sof/fiscaliteCO2Service.rpc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>fiscaliteCO2</servlet-name>
        <url-pattern>/rci_admin/fiscaliteCO2Service.rpc</url-pattern>
    </servlet-mapping>

    <!-- RPC Offre -->
    <servlet>
        <servlet-name>offreServiceRPC</servlet-name>
        <servlet-class>com.rcibanque.sof.server.service.offre.OffreServiceRPCImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>offreServiceRPC</servlet-name>
        <url-pattern>/rci_sof/offreService.rpc</url-pattern>
    </servlet-mapping>

    <!-- Servlets -->
    <servlet>
        <servlet-name>displayChartServlet</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>displayChartServlet</servlet-name>
        <url-pattern>/rci_sof/displayChart</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>downloadServlet</servlet-name>
        <servlet-class>com.rcibanque.socle.server.servlet.DownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>downloadServlet</servlet-name>
        <url-pattern>*.pdf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>downloadServlet</servlet-name>
        <url-pattern>*.xls</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>downloadServlet</servlet-name>
        <url-pattern>*.txt</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>downloadServlet</servlet-name>
        <url-pattern>*.csv</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>topcarDownloadServlet</servlet-name>
        <servlet-class>com.rcibanque.socle.server.servlet.TopcarDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>topcarDownloadServlet</servlet-name>
        <url-pattern>/rci_sof/download</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>uploadServlet</servlet-name>
        <servlet-class>com.rcibanque.socle.server.servlet.UploadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>uploadServlet</servlet-name>
        <url-pattern>/rci_sof/upload</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>uploadServlet</servlet-name>
        <url-pattern>/rci_admin/upload</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>uploadTopcarServlet</servlet-name>
        <servlet-class>com.rcibanque.socle.server.servlet.UploadTopcarServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>uploadTopcarServlet</servlet-name>
        <url-pattern>/rci_sof/uploadTopcar</url-pattern>
    </servlet-mapping>


    <!-- Filtre de gestion des caches -->
    <filter>
        <filter-name>gwtCacheControlFilter</filter-name>
        <filter-class>com.rcibanque.socle.server.filter.GWTCacheControlFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>gwtCacheControlFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Default page to serve -->
    <welcome-file-list>
        <welcome-file>Index.html</welcome-file>
    </welcome-file-list>

    <!-- Timeout QC32499 session connexion timeout <session-config> <session-timeout>300</session-timeout> 
        </session-config> -->

</web-app>   

我们使用AbstractAnnotationConfigDispatcherServletInitializer用java配置来配置Spring

public class SoftWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

     @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class[] { SoftWebConfig.class };
        }

        @Override
        protected Class<?>[] getServletConfigClasses() {
            return null;
        }

        @Override
        protected String[] getServletMappings() {
            return new String[] { "/*", "/ws/*" };
        }

}     

我的SoftWebConfig是

@Configuration
@Import(SoftDBConfig.class)
@EnableScheduling
@EnableWebMvc
@EnableHypermediaSupport(type = { HypermediaType.HAL })
@ComponentScan(basePackages = { "com.rcibanque.socle.server.*", "com.rcibanque.sof.server.*",
        "com.rcibanque.socle.server.ws.*" })
public class SoftWebConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.setScheduler(taskExecutor());
    }

    @Bean(name = "TOPCAR-EXECUTOR", destroyMethod = "shutdown")
    public Executor taskExecutor() {
        return Executors.newScheduledThreadPool(1);
    }

}

这个应用程序在TOMCAT和JETTY服务器上运行得很好,但是当我将它部署在Jboss服务器上并使用http://localhost:8080/rci_sof/index.html访问该应用程序时,会出现一个404错误,在Server.log中,我发现了以下日志:

11:30:08,365信息[com.rcibanque.socle.server.servlet.abstractContextInitializerServlet](MSC服务线程1-8)propriétés chargées parrir de:null\rci_sof.properties 11:30:08,382信息[org.JBoss.web](MSC服务线程1-8)JBAS018210:注册web上下文:/rci-sof-web-16.6.01-snapshot 11:30:08,388信息[org.JBoss.AS](MSC服务线程1-2)JBAS015951:管理O[org.JBoss.AS](MSC service thread 1-2)JBAS015874:JBoss AS 7.1.1。最终的“Brontes”在66742ms中启动-启动了341个服务中的263个(76个服务是被动的或按需的)11:30:08,569信息[org.JBoss.AS.server](deploymentscanner-threads-2)JBAS018559:部署的“rci-sof-web-16.6.01-snapshot.war”

11:48:15,691警告[org.springframework.web.servlet.pagenotfound](http-127.0.0.1-8080-2)在名称为“dispatcher”的DispatcherServlet中没有找到URI[/rci-sof-web-16.6.01-snapshot/rci_sof/index.html]的HTTP请求映射11:48:20,311警告[org.springframework.web.servlet.pagenotfound](http-127.0.0.1-8080-2)在名称为“dispatcher”的DispatcherServlet中没有找到URI,258警告[org.springframework.web.servlet.pagenotfound](http-127.0.0.1-8080-2)未找到名称为“dispatcher”的DispatcherServlet中URI[/rci-sof-web-16.6.01-snapshot/rci_sof/index.html]的HTTP请求的映射11:48:42,939警告[org.springframework.web.servlet.pagenotfound](http-127.0.0.1-8080-2)未找到名称为“DispatcherServlet中URI[/rci-sof/index.html]的HTTP请求

谢谢你的帮助。

共有1个答案

蓟捷
2023-03-14

我通过将“/*”替换为“/”来解决这个问题,现在它可以在Jboss、Jetty和Tomcat中工作。

 类似资料:
  • 我试图在eclipse中设置jboss应用服务器,但我面临一些问题。我只在Eclipse中安装了jboss工具。因此,我的问题的第一部分是,jboss工具本身是否足以设置服务器,或者我需要额外的安装。

  • 我正在尝试将Spring Boot应用程序作为WAR部署到tomcat服务器。我可以很好地构建war并将其部署到tomcat服务器。但是,当我启动服务器时,我的spring应用程序从未运行。服务器启动得很好。Spring要我做的我都做了, http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-creat

  • 在jboss 7.1.1As上部署mule应用程序时面临问题。我正在使用jboss 7.1.1as。我在eclipse中创建了动态项目。将mule配置文件复制到WEB-INF/classes文件夹中。导入lib文件夹中的所有mule jar,下面是我的配置文件 以下是我的web.xml档案 我导出我的应用程序作为战争file.and部署到jboss服务器然后得到以下错误 注意,我已经导入了jar文

  • 我创建了一个工作正常的Spring启动应用程序,但我无法获得与该应用程序捆绑在一起的Rest服务。请找到下面的代码。我能够访问urlhttp://localhost:8080/springbootr/但无法访问web服务urlhttp://localhost:8080/springbootr/Hello/,在web服务调用时得到404。 pom。xml: 我是这个应用程序的新手,请帮助我。

  • 我有一个在远程服务器上运行的spring boot应用程序。当我构建它在HTTP上工作时,一切工作都很好。但当我试图设置SSL时,应用程序不能工作。它不会抛出错误或任何东西。但我无法访问浏览器中的任何页面(我尝试了https://www.example.com、https://www.example.com:8443、https://example.com等)。 > 我已经从certificate

  • 问题内容: 我已经创建了Spring Boot Web应用程序,但是无法在tomcat上部署Spring Boot Web应用程序WAR文件,并且能够将其作为Java应用程序运行。如何在tomcat上将Spring Boot应用程序作为Web服务运行 我正在使用以下代码。如果可以在tomcat plz上运行,请帮助我使用批注而不使用web.xml和web.xml。 以下代码用于休息控制器 我正在使