4

我正在开发一个具有图像上传模块的应用程序。我编写了以下代码来获取多部分表单数据。

列表项 = servletFileUpload.parseRequest(request);

我正在commons-fileupload-1.2.1.jar为此目的使用。当我在jboss-5.1.0.GA服务器上部署我的构建时,它在上传任何文件时都会出错。错误如下:

java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List; 在 org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) 在 com.bworld.action.UploadSubscriptionImage.processRequest(UploadSubscriptionImage.java:46) 在 com.bworld.action.UploadSubscriptionImage.doPost(UploadSubscriptionImage .java:145) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain。 internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss。

谁能告诉我如何从这个问题中恢复?

4

4 回答 4

1

您使用了错误的罐子。您的类路径引用的内容与您认为的不同。检查您的 Jboss 库和类路径中是否有名称相似但版本不同的 jar。然后做一个完整的 clean + build 循环,删除 jboss tmp 目录,然后在服务器上做一个 clean + publish。这是另一个答案

于 2012-05-29T14:04:08.637 回答
1

您的 WEB-INF/lib 文件夹中缺少您的公共文件上传 jar,或者它已经由 JBoss 提供,您不应该在 WEB-INF/lib 中复制它

相关:http ://techblog.bozho.net/?p=866

于 2012-05-29T14:04:12.457 回答
0

使用 commons-fileupload 1.3.3 版本。我使用并解决了这个

于 2017-07-18T12:08:09.483 回答
0

我知道这是一个老问题,但我的回答可能会对某人有所帮助,这可能是由于几个原因

  1. 正如 Bonzho 提到的,您的 WEB-INF/lib 文件夹中可能缺少公共文件上传 jar
  2. commons file-upload 随最新的 tomcat 和 jboss 服务器一起提供,因此您无需在项目外部使用该 jar。但是假设您已经使用过它,那么您可以尝试将其从类路径中删除并进行干净的构建,这很可能会起作用
  3. 但有时您可能仍然会收到错误提示 java.lang.NoSuchMethodError: 这可能是因为 eclipse 没有显示来自您使用的 commons-fileupload jar 的旧导入错误,因此请浏览项目的类并制作确保 import 语句是 import org.apache.tomcat.util.http.fileupload.*或者import org.apache.commons.fileupload*不是两者

使用 pom 始终是一个好习惯。

于 2016-06-07T04:54:14.110 回答