问题
I'm developing a web application using Spring3, JSF2 and Primefaces3 in Tomcat6... My application works just fine if I'm using Firefox. If I run the app also with IE 8 I'm getting the exception stack shown below. This is very strange because if there were some incompatibility issues I would expect some visual errors not something thrown by apache tomcat...
The exception stack:
SEVERE: An exception or error occurred in the container during the request processing
java.lang.NullPointerException
at org.apache.tomcat.util.http.MimeHeaders.setValue(MimeHeaders.java:267)
at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1558)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:956)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.coyote.Response.sendHeaders(Response.java:379)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:296)
at org.apache.catalina.connector.Response.flushBuffer(Response.java:549)
at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:272)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Nov 14, 2011 10:27:05 AM org.apache.coyote.http11.Http11Processor process
SEVERE: Error finishing response
java.lang.NullPointerException
at org.apache.tomcat.util.http.MimeHeaders.setValue(MimeHeaders.java:267)
at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1558)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:956)
at org.apache.coyote.Response.action(Response.java:181)
at org.apache.coyote.http11.InternalOutputBuffer.endRequest(InternalOutputBuffer.java:398)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:901)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
Nov 14, 2011 10:27:05 AM org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler process
SEVERE: Error reading request, ignored
java.lang.NullPointerException
at org.apache.tomcat.util.http.MimeHeaders.clear(MimeHeaders.java:130)
at org.apache.coyote.Response.recycle(Response.java:579)
at org.apache.coyote.http11.InternalOutputBuffer.nextRequest(InternalOutputBuffer.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:923)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
and
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
javax.servlet.ServletException: OncePerRequestFilter just supports HTTP requests
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at creazione.exception.MyFilter.doFilter(MyFilter.java:50)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
PS:I've also added JSF, Spring and Primefaces as tags because it could be an incompatibility issue.
EDIT:
aopalliance-1.0.jar
asm-1.5.1.jar
aspectj-1.6.3.jar
aspectjrt-1.6.0.jar
aspectjweaver.jar
commons-dbcp-1.4.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-net-1.4.1.jar
commons-pool-1.5.6.jar
jakarta-oro-2.0.8.jar
javax.jms.jar
jndi.jar
oracle10g.jar
SPRING 3.0.6 library
primefaces-3.0.M4.jar
hibernate-persistence library
JSF2.1.4 (but I've changed back to jsf2.1.3)
jstl 11 library
junit lib
junit_4 lib
Since I changed back to jsf 2.1.3 the behavior on IE has slightly changed: sometimes the page is shown but the buttons are frozen, sometimes the components are rendered chaotically and sometimes I get the HTTP 404 error - very strange!
回答1:
From your /WEB-INF/lib listing:
JSF2.1.4 (but I've changed back to jsf2.1.3)
Mojarra 2.1 requires a Servlet 3.0 container, but Tomcat 6.0 is a Servlet 2.5 container. You need Mojarra 2.0 (or you need to upgrade to Tomcat 7.0). Although that does still not explain the exceptions you're getting (as far as I see), I recommend to align it out to exclude the one and other.
As to the concrete exceptions, they indicate that your webapp's runtime classpath is cluttered with Tomcat-specific core libraries from a different Tomcat version. The webapp's runtime classpath covers among others Webapp/WEB-INF/lib, Tomcat/lib, Tomcat shared/common, JRE/lib and JRE/lib/ext. For example, if you have some servlet-api.jar, jsp-api.jar, or whatever on any place other than Tomcat/lib, then it should be removed.
来源:https://stackoverflow.com/questions/8119143/org-apache-coyote-http11-http11protocolhttp11connectionhandler-process-severe