2011-02-25 68 views
7

我的jboss在尝试运行我的应用程序(spring mvc)时抛出了不明确的错误。它部署好,而这个例外并没有告诉我任何有用的东西,所以我不知道该怎么做。我无法调试,不能做任何事情真的:JBoss中的“javax.servlet.ServletException:非HTTP请求或响应”

 
    13:00:01,262 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 2m:13s:790ms 

**Started successfully** 

在运行,从这种情况发生在浏览器应用程序:

13:00:09,456 ERROR [[appServlet]] Servlet.service() for servlet appServlet threw exception 
javax.servlet.ServletException: non-HTTP request or response 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:818) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) 
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:619) 

回答

11

它被作为HttpServlet.service(ServletRequest, ServletResponse)时抛出的参数不能施法分别为HttpServletRequestHttpServletResponse

这意味着两种情况之一:

  • 的参数是错误的类型(不太可能)或
  • 某些滤波器是用这些类型的错误的拷贝,装载有错误的类加载器(例如如果您将自己的servlet-api-x.x.jar副本与您的webapp一起发送)。
+1

如果您碰巧使用'ServletRequestWrapper'而不是'HttpServletRequestWrapper',参数可能是错误的类型 – kuporific 2015-10-01 11:20:54

+0

谢谢@kuporific改为HttpServletRequestWrapper为我解决了这个问题。 – Amber 2015-10-08 15:31:03

4

尝试从WAR文件中删除servlet-api jar。

1

如果您使用的是Maven,则可以将servlet-api的范围设置为provided