ClassNotFoundException when using commons-fileupload
----------------------------------------------------
Key: GERONIMO-5868
URL: https://issues.apache.org/jira/browse/GERONIMO-5868
Project: Geronimo
Issue Type: Bug
Security Level: public (Regular issues)
Components: general
Affects Versions: 2.2.1
Reporter: Martin Hejl
Using a vanilla geronimo 2.2.1 server from
http://www.apache.org/dyn/closer.cgi/geronimo/2.2.1/geronimo-tomcat6-javaee5-2.2.1-bin.zip
and GEP 2.2.1 I created a simple dynamic web project (one jsp and one servlet,
with commons-fileupload and commons-io in WEB-INF/lib/ - see attachment)
When the form in hello.jsp (http://localhost:8080/HelloWorld/) is postet to the
servlet (http://localhost:8080/HelloWorld/postFile), I get the following
exception:
java.lang.ClassNotFoundException:
org.apache.commons.io.output.DeferredFileOutputStream in classloader
org.apache.geronimo.configs/axis2/2.2.1/car
at
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
at
org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:257)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:179)
at
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
at
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
at
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
at de.guhsoft.test.PostServlet.doPost(PostServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:420)
at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:396)
at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
at
org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
As suggestet by Kevan at
http://article.gmane.org/gmane.comp.java.geronimo.user/15126 adding
<dep:hidden-classes>
<dep:filter>org.apache.commons.io</dep:filter>
<dep:filter>org.apache.commons.fileupload</dep:filter>
</dep:hidden-classes>
to the deployment plan fixes the issue.
Kevan suggested at http://article.gmane.org/gmane.comp.java.geronimo.user/15127
that I should open a Jira anyway, fileupload probably
shouldn't be in the axis2 classloader
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira