gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:14:39 24 4
gpt4 key购买 nike

我有一个在 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:07,927 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/inffr/mat/{codeModele}/{codeVersion}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesMat(java.lang.String,java.lang.String,boolean,boolean) 11:30:07,933 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/inffr/mat/{codeModele}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesMat(java.lang.String,boolean) 11:30:07,939 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/inffr/renault/{codeModeleRenault}/{libelleVersionRenault}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesRenault(java.lang.String,java.lang.String,boolean,boolean) 11:30:07,945 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/inffr/renault/{codeModeleRenault}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.inffr.WsVehiculeInffr.findByCodesRenault(java.lang.String,boolean) 11:30:07,952 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/historiquedlo/{siren}/{codeProduit}/{debut}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> com.rcibanque.socle.server.ws.dlo.WsHistoriqueDlo.findHistoriqueDlo(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String) 11:30:07,958 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-8) Mapped "{[/historiquedlo/{siren}/{debut}],methods=[GET],consumes=[text/plain || application/],produces=[application/hal+json]}" onto public org.springframework.http.ResponseEntity> 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] (MSC service thread 1-8) Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Thu Aug 16 11:30:04 CEST 2018]; root of context hierarchy 11:30:08,248 INFO [org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver] (MSC service thread 1-8) Detected @ExceptionHandler methods in wsExceptionHandlerAdvice 11:30:08,327 INFO [org.springframework.web.context.ContextLoader] (MSC service thread 1-8) Root WebApplicationContext: initialization completed in 3565 ms 11:30:08,334 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/rci-sof-web-16.6.01-SNAPSHOT]] (MSC service thread 1-8) Initializing Spring FrameworkServlet 'dispatcher' 11:30:08,337 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-8) FrameworkServlet 'dispatcher': initialization started 11:30:08,340 INFO [org.springframework.web.context.support.AnnotationConfigWebApplicationContext] (MSC service thread 1-8) Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Thu Aug 16 11:30:08 CEST 2018]; parent: Root WebApplicationContext 11:30:08,345 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (MSC service thread 1-8) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 11:30:08,361 INFO [org.springframework.web.servlet.DispatcherServlet] (MSC service thread 1-8) FrameworkServlet 'dispatcher': initialization completed in 23 ms 11:30:08,364 INFO [stdout] (MSC service thread 1-8) null

11:30:08,365 INFO [com.rcibanque.socle.server.servlet.AbstractContextInitializerServlet] (MSC service thread 1-8) Propriétés chargées à partir de : null\rci_sof.properties 11:30:08,382 INFO [org.jboss.web] (MSC service thread 1-8) JBAS018210: Registering web context: /rci-sof-web-16.6.01-SNAPSHOT 11:30:08,388 INFO [org.jboss.as] (MSC service thread 1-2) JBAS015951: Admin console listening on http://127.0.0.1:9990 11:30:08,390 INFO [org.jboss.as] (MSC service thread 1-2) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 66742ms - Started 263 of 341 services (76 services are passive or on-demand) 11:30:08,569 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "rci-sof-web-16.6.01-SNAPSHOT.war"

11:48:15,691 WARN [org.springframework.web.servlet.PageNotFound] (http--127.0.0.1-8080-2) No mapping found for HTTP request with URI [/rci-sof-web-16.6.01-SNAPSHOT/rci_sof/Index.html] in DispatcherServlet with name 'dispatcher' 11:48:20,311 WARN [org.springframework.web.servlet.PageNotFound] (http--127.0.0.1-8080-2) No mapping found for HTTP request with URI [/rci-sof-web-16.6.01-SNAPSHOT/Index.html] in DispatcherServlet with name 'dispatcher' 11:48:25,258 WARN [org.springframework.web.servlet.PageNotFound] (http--127.0.0.1-8080-2) No mapping found for HTTP request with URI [/rci-sof-web-16.6.01-SNAPSHOT/rci_sof/Index.html] in DispatcherServlet with name 'dispatcher' 11:48:42,939 WARN [org.springframework.web.servlet.PageNotFound] (http--127.0.0.1-8080-2) No mapping found for HTTP request with URI [/rci-sof/Index.html] in DispatcherServlet with name 'dispatcher'

感谢您的帮助。

最佳答案

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

关于java - 为什么 spring 应用程序在 tomcat 和 jetty 服务器上工作,而在 jboss 服务器上以 404 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51872884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com