2011-02-25 10 views
7

Mi jboss lanza un error no descriptivo al intentar ejecutar mi aplicación (spring mvc). Despliega bien, y esta excepción no me dice nada útil, así que realmente no sé qué hacer. No puedo depurar, no puede hacer nada en realidad:"javax.servlet.ServletException: solicitud o respuesta no HTTP" en JBoss

 
    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** 

Mientras se ejecuta la aplicación desde el navegador esto sucede:

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) 

Respuesta

11

Esto se tira en HttpServlet.service(ServletRequest, ServletResponse) cuando los parámetros no se pueden colar a HttpServletRequest y HttpServletResponse respectivamente.

Eso significa una de dos cosas:

  • los parámetros son del tipo equivocado (poco probable) o
  • algún filtro está utilizando la copia equivocada de esos tipos, cargada con un cargador de clases incorrecto (por ejemplo si entrega su propia copia de servlet-api-x.x.jar con su aplicación web).
+1

Los parámetros pueden ser del tipo incorrecto si está utilizando 'ServletRequestWrapper' en lugar de' HttpServletRequestWrapper' – kuporific

+0

Gracias, @kuporific, al cambiar a HttpServletRequestWrapper lo solucionó por mí. – Amber

4

Intente eliminar el jar servlet-api de su archivo WAR.

1

Si está utilizando Maven, puede simplemente establecer el alcance del servlet-api en provided.

Cuestiones relacionadas