【问题标题】:"javax.servlet.ServletException: non-HTTP request or response" in JBossJBoss 中的“javax.servlet.ServletException:非 HTTP 请求或响应”
【发布时间】:2011-02-25 12:18:51
【问题描述】:

我的 jboss 在尝试运行我的应用程序 (spring mvc) 时抛出了无法描述的错误。它部署正常,这个异常并没有告诉我任何有用的信息,所以我真的不知道该怎么做。我不能调试,真的什么都做不了:

13:00:01,262 INFO [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] 开始于 2m:13s:790ms **成功启动**

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

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)

【问题讨论】:

    标签: java exception jboss


    【解决方案1】:

    当参数无法分别转换为 HttpServletRequestHttpServletResponse 时,这将被抛出 HttpServlet.service(ServletRequest, ServletResponse)

    这意味着两件事之一:

    • 参数类型错误(不太可能)或
    • 某些过滤器使用了这些类型的错误副本,加载了错误的类加载器(例如,如果您通过 web 应用交付自己的 servlet-api-x.x.jar 副本)。

    【讨论】:

    • 如果您碰巧使用ServletRequestWrapper 而不是HttpServletRequestWrapper,则参数可能是错误的类型
    • 谢谢,@kuporific,更改为 HttpServletRequestWrapper 为我修复了它。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您使用的是 Maven,您只需将 servlet-api 的范围设置为 provided

      【讨论】:

        猜你喜欢
        • 2023-03-04
        • 1970-01-01
        • 2019-03-22
        • 2012-08-30
        • 2021-08-28
        • 2020-11-17
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多