作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Apache 在尝试上传文件时返回此错误(我只保留了堆栈跟踪的第一行和根本原因):
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /upload.jsp:40
37:
38: try {
39:
40: items = upload.parseRequest(request);
41: } catch (FileUploadException e) {
42: out.println(e);
43: }
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
root cause
javax.servlet.ServletException: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;
root cause
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)
这是我的代码:
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 实例化工作正常,所以看起来包在那里但是......
有什么想法吗?所有的建议帮助赞赏! :)
最佳答案
这确实是类路径污染的迹象。您有不同版本的 commons fileupload JAR 文件分布在类路径中。您需要通过删除或替换旧版本的类路径来清理类路径。对于 JSP/Servlet web 应用程序,类路径覆盖的默认路径通常是 Webapp/WEB-INF/lib
、Webapp/WEB-INF/classes
, Appserver/lib
和 JRE/lib
。
也就是说,堆栈跟踪还表明您使用 old fashioned scriptlets 在 JSP 文件中编写了原始 Java 代码.我强烈建议不要这样做,而只是使用真正的 Java 类(在本例中为 Servlet)来处理文件上传。
关于jsp - Apache commons -> 文件上传 -> parseRequest() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153488/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!