Java Websphere路由到文件位置而不是控制器
我有一个POST方法,看起来像这样:Java Websphere路由到文件位置而不是控制器,java,spring,websphere,websphere-liberty,Java,Spring,Websphere,Websphere Liberty,我有一个POST方法,看起来像这样: http://SERVER-IP/demoapp/v2/mobile/message 并提供一个JSON负载。但是,与预期的路由到正确控制器不同,is似乎正在搜索文件并引发给定的异常: [ERROR ] SRVE0777E: Exception thrown by application class 'com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.service:1,624' j
http://SERVER-IP/demoapp/v2/mobile/message
并提供一个JSON负载。但是,与预期的路由到正确控制器不同,is似乎正在搜索文件并引发给定的异常:
[ERROR ] SRVE0777E: Exception thrown by application class 'com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.service:1,624'
javax.servlet.ServletException: java.io.FileNotFoundException: SRVE0190E: File not found: /v2/mobile/message
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.service(DefaultExtensionProcessor.java:1624)
at [internal classes]
at org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler.handleRequest(DefaultServletHttpRequestHandler.java:122)
at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:51)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1287)
at [internal classes]
Caused by: java.io.FileNotFoundException: SRVE0190E: File not found: /v2/mobile/message
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:528)
... 12 more
我对Websphere非常陌生,因此在此方面的任何帮助都将不胜感激。另外,不管它值多少钱,我之前已经让它在Tomcat上正常工作了,这让我相信这一定是Websphere的配置问题
该应用程序位于servers/demoServer/dropins/war/demoapp下
我在那个位置提取了war文件的内容
更新:
以下是所请求的shell和web.xml方法:
@RequestMapping(value="/v2/mobile/message",method=RequestMethod.POST)
public ResponseEntity<String> mobileDeviceMessagev2(HttpServletRequest request) throws Exception {
...code here....
}
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
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">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>inauth.perapp.log4j.properties</param-name>
<param-value>${log4j.properties.collector.path}</param-value>
</context-param>
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</context-param>
<context-param>
<param-name>contextInitializerClasses</param-name>
<param-value>com.inauth.fingerprint.collector.CollectorInitializer</param-value>
</context-param>
<servlet>
<servlet-name>collector</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.inauth.fingerprint.collector.DispatcherConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>collector</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/static/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/static/500.html</location>
</error-page>
@RequestMapping(value=“/v2/mobile/message”,method=RequestMethod.POST)
public ResponseEntity mobileDeviceMessagev2(HttpServletRequest请求)引发异常{
…这里是代码。。。。
}
org.springframework.web.context.ContextLoaderListener
Inuth.perapp.log4j.properties
${log4j.properties.collector.path}
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
上下文初始化类
com.inuth.fingerprint.collector.CollectorInitializer
收藏家
org.springframework.web.servlet.DispatcherServlet
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
com.inuth.fingerprint.collector.DispatcherConfig
1.
收藏家
/*
404
/WEB-INF/static/404.html
500
/WEB-INF/static/500.html
您的web.xml和/或@WebServlet注释看起来像什么?@aguibert-我们不使用WebServlet,而是使用RequestMapping。我在问题中添加了方法shell和web.xml。谢谢。如果您需要Rest服务,Liberty提供了对JavaEE7的全面支持,对于JAX-RS,您不需要Spring,因此我建议您使用该支持而不是Spring。但关于您的问题,请检查您的Spring servlet是否正确初始化,Spring应用程序也存在众所周知的迁移问题-尝试在Liberty中使用扩展的WAR部署,而不是归档的WAR。@Gas-我确实使用了扩展的WAR。不幸的是,我们需要尝试使用Spring,因为该产品还需要支持Tomcat和JBoss。您可能想问一个比websphere更面向spring的问题。您的web.xml和/或@WebServlet注释是什么样子的?@aguibert-我们不使用WebServlet,而是使用RequestMapping。我在问题中添加了方法shell和web.xml。谢谢。如果您需要Rest服务,Liberty提供了对JavaEE7的全面支持,对于JAX-RS,您不需要Spring,因此我建议您使用该支持而不是Spring。但关于您的问题,请检查您的Spring servlet是否正确初始化,Spring应用程序也存在众所周知的迁移问题-尝试在Liberty中使用扩展的WAR部署,而不是归档的WAR。@Gas-我确实使用了扩展的WAR。不幸的是,我们需要尝试使用Spring,因为该产品还需要支持Tomcat和JBoss。您可能想问一个比websphere更面向spring的问题。