Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp Apache commons->;文件上载->;parseRequest()错误_Jsp_Upload_Apache Commons - Fatal编程技术网

Jsp Apache commons->;文件上载->;parseRequest()错误

Jsp Apache commons->;文件上载->;parseRequest()错误,jsp,upload,apache-commons,Jsp,Upload,Apache Commons,Apache在尝试上载文件时返回此错误(我只保留stacktrace的第一行和根本原因): 这是我的密码: if(ServletFileUpload.isMultipartContent(request)){ FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null; tr

Apache在尝试上载文件时返回此错误(我只保留stacktrace的第一行和根本原因):

这是我的密码:

if(ServletFileUpload.isMultipartContent(request)){
 FileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload upload = new ServletFileUpload(factory);
   List items = null;


   try {

       items = upload.parseRequest(request);
   } catch (FileUploadException e) {
       out.println(e);
   }
}
我不明白,它看起来找不到parseRequest()方法,但是ServletFileUpload实例工作正常,所以看起来包在那里,但是

有什么想法吗?
感谢您的所有建议!:)

noSuchMethod错误可能是由编译所依据的jar版本与运行时类路径中的jar版本不匹配引起的。这需要仔细检查。

这确实是类路径污染的迹象。在类路径上分布着不同版本的commons fileupload JAR文件。您需要通过删除或替换旧版本的类路径来清理类路径。对于JSP/Servlet WEB应用程序,类路径覆盖的默认路径通常是
Webapp/WEB-INF/lib
Webapp/WEB-INF/classes
Appserver/lib
JRE/lib


也就是说,stacktrace还指示您使用JSP文件在JSP文件中编写了原始Java代码。我强烈建议不要这样做,而只是使用一个真正的Java类(在本例中是Servlet)来处理文件上载。

您是对的,commons上载的旧版本在tomcat lib文件夹中。你也是对的,我不应该这样编码,但在这种情况下,我只需要添加一个小的进程到现有的平台使用他们的api,它只有一个页面,所以。。。我没有费心,但你是对的,错了:)
if(ServletFileUpload.isMultipartContent(request)){
 FileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload upload = new ServletFileUpload(factory);
   List items = null;


   try {

       items = upload.parseRequest(request);
   } catch (FileUploadException e) {
       out.println(e);
   }
}