java.lang.NoSuchMethodError:org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest

时间:2011-12-02 08:39:13

标签: java servlets file-upload weblogic

我正在按照here所述的多部分过滤器处理文件上传。我创建了一个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上成功部署?

3 个答案:

答案 0 :(得分:6)

  

在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个选项:

  1. /WEB-INF/lib
  2. 中删除JAR
  3. 将其替换为与Weblogic使用的版本完全相同的版本。
  4. 将Weblogic类加载策略更改为首先从应用程序加载类。

答案 1 :(得分:2)

您可以使用以下API将文件上传到JBoss Server http://commons.apache.org/fileupload/index.html

答案 2 :(得分:0)

检查您的Jar库是否包含具有不同版本的重复Jar文件。 删除旧版本文件。