我正在通过多部分过滤器处理文件上传,如下所述here http://balusc.blogspot.com/2007/11/multipartfilter.html。我创建了一个 WAR 文件并部署在 Weblogic 10.3.3 服务器上并收到错误:
<Dec 8, 2011 5:37:07 PM IST> <Error> <HTTP> <BEA-101020> <[ServletContext@26087289[app:playground module:playground.war path:/playground spec-version:null]] Servlet failed with Exception
java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
at net.balusc.webapp.MultipartFilter.parseRequest(MultipartFilter.java:169)
at net.balusc.webapp.MultipartFilter.doFilter(MultipartFilter.java:123)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
Truncated. see log file for complete stacktrace
然后我在 Tomcat 7.0.11 服务器上部署了相同的 WAR 文件,并且它成功运行。这是怎么造成的以及如何在 Weblogic 上成功部署?
在 Weblogic 10.3.3 上部署会导致错误:
java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;
在Tomcat 7.0.11上部署成功。
Weblogic 已经附带了 Apache Commons FileUpload 库。此错误表明它们的版本比您的版本旧/WEB-INF/lib
.
你至少有3个选择:
- 从以下位置删除 JAR
/WEB-INF/lib
.
- 将它们替换为与 Weblogic 使用的版本完全相同的版本。
- 更改 Weblogic 类加载策略以首先从应用程序加载类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)