首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么spring应用程序在tomcat和jetty服务器中工作,并在jboss中响应404?

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

Stack Overflow用户
提问于 2018-08-16 08:35:47
回答 1查看 113关注 0票数 0

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

我在web.xml中的配置是

代码语言:javascript
复制
    <?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>   

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

代码语言:javascript
复制
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是

代码语言:javascript
复制
@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并使用sof/index.html访问应用程序时,出现了一个404错误,在server.log中,我发现了这个日志:

11:30:07,927 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping将"{/inffr/mat/{codeModele}/{codeVersion},methods=GET,json=text/纯文本/溶胶+json}“映射到公共org.springframework.http.ResponseEntity> org.springframework.http.ResponseEntity> java.lang.String,布尔值,布尔值) 11:30:07,933 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping映射"{/inffr/mat/{codeModele},methods=GET,consumes=text/纯x+json}”。产生=application/hal+json}“30 public com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesMat(java.lang.String,org.springframework.http.ResponseEntity> boolean ) 11:30:07,939 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappingorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappingmethods=GETorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping methods=GET,json=text/平原而今应用程序/__,produces=application/hal+json}”转到公共org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesRenault(java.lang.String,java.lang.String,布尔,(布尔值) 11:30:07,945 INFO com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesRenault(java.lang.String,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping将"{/inffr/renault/{codeModeleRenault},methods=GET,json=text/methods=GET/_,produces=application/hal+json}“映射到公共org.springframework.http.ResponseEntity> org.springframework.http.ResponseEntity>org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping)11:30:30:07,952 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping映射的org.springframework.http.ResponseEntity>org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping methods=GET,json=text/纯文本/codeModeleRenault应用程序/_,产生=application/hal+json}“30 public org.springframework.http.ResponseEntity> org.springframework.http.ResponseEntity> java.lang.String,java.lang.String) 11:30:07,958 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping hal”{/史学public/{siren}/{hal},methods=GET,json=text/plain/_,产生=application/hal+json}“登录公共com.rcibanque.socle.server.ws.dlo.WsHistoriqueDlo.findHistoriqueDlo(java.lang.String,java.lang.String,java.lang.String,java.lang.String) 11:30:08,198 INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter寻找@ControllerAdvice: Root WebApplicationContext:启动日期清华,11:30:04 CEST 2018;上下文层次结构的根11:30:08,248 INFO org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver检测到@ExceptionHandler方法在wsExceptionHandlerAdvice 11:30:08,327 INFO org.springframework.web.context.ContextLoader root WebApplicationContext:初始化在3565 ms 11:30:08,334 INFO org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/rci-sof-web-16.6.01-SNAPSHOT]初始化Spring FrameworkServlet 'dispatcher‘11:30:08,337 INFO org.springframework.web.servlet.DispatcherServlet FrameworkServlet’dispatcher:初始化启动11:30:08,340 INFO org.springframework.web.context.support.AnnotationConfigWebApplicationContext刷新WebApplicationContext,用于命名空间'dispatcher-servlet':启动日期清华8月16日11:30:08 CEST 2018;父:根WebApplicationContext 11:30:08,345 INFO org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor JSR-330 'javax.inject.Inject‘注释找到并支持自动装配11:30:08,361 INFO org.springframework.web.servlet.DispatcherServlet FrameworkServlet 'dispatcher':初始化在23 ms 11:30:08,364 INFO stdout null中完成 11:30:08,365 INFO com.rcibanque.socle.server.servlet.AbstractContextInitializerServlet Propriétés临时代办de : null\rci_sof.properties 11:30:08,382 INFO org.jboss.web JBAS018210:注册web上下文:/rci-sof-web-16.6.01-快照11:30:08,388 INFO org.jboss.as JBAS015951:管理控制台侦听http://127.0.0.1:9990 11:30:08,390 INFO org.jboss.as JBAS015874: JBoss AS 7.1.1.Final "Brontes“开始于66742 es在341项服务中启动263项(76项服务是被动的或按需的) 11: 11:11:30:08,569信息org.jboss.as.server JBAS018559:部署"rci-sof-web-16.6.01-SNAPSHOT.war“ 11:48:15,691警告/rci-sof-web-16.6.01-SNAPSHOT/rci_sof/Index.html请求在DispatcherServlet中没有映射,名称为'dispatcher‘11:48:20 311警告org.springframework.web.servlet.PageNotFound没有找到URI /rci-sof-web-16.6.01- DispatcherServlet中的快照/index.html与名称'dispatcher’11:48:25,258警告DispatcherServlet请求没有找到URI /rci-sof-web-16的映射.6.01- DispatcherServlet中名为“dispatcher”的快照/rci_sof/index.html:48:42,939警告org.springframework.web.servlet.PageNotFound没有为DispatcherServlet中的URI /rci-sof/Index.html找到名称为“dispatcher”的映射

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 14:27:42

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51872884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档