kat*_*ura 5 java tomcat servlets file-upload noclassdeffounderror
我最近开始使用JMeter在我的电脑上本地加载测试我的webapp.我有一个用于上传图像的jsp页面.图像由我的servlet处理.当我今天尝试这个过程时,我得到以下异常/错误:
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
org.apache.commons.fileupload.servlet.ServletFileUpload.isMultipartContent(ServletFileUpload.java:68)
spyder.servlets.imageProcessing.ImageProcessingServlet.uploadEditedImagesToDB(ImageProcessingServlet.java:527)
spyder.servlets.imageProcessing.ImageProcessingServlet.doPost(ImageProcessingServlet.java:153)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Run Code Online (Sandbox Code Playgroud)
这是我的servlet中的异常所引用的代码 -
boolean isPart = ServletFileUpload.isMultipartContent(req);
Run Code Online (Sandbox Code Playgroud)
....是的,我已经import在课堂上提出了所有必要的陈述.
我不记得对我的系统上的任何会导致此问题的任何更改.这个过程总是运行没有任何问题,所以我不明白是什么导致它现在这样失败.我认为,在我使用JMeter之后失败了......
Bal*_*usC 10
所有第三方webapp库(如Commons FileUpload)都属于/WEB-INF/lib您的webapp,而不是其他地方.无论何时将其放入JRE/lib或中,都会发生此异常JRE/lib/ext.
事实上,正如Bozho所提到的,你还需要确保你没有移动/复制/复制任何特定于servlet容器的库(应该保持不变Tomcat/lib)在类路径的不同位置.但那应该是IMO没有导致这种例外.它基本上告诉加载FileUpload API的类加载器完全不了解Servlet API.
如果你读了Tomcat的类加载HOW-TO,那么你会看到,在图书馆JRE/lib和JRE/lib/ext由不同的类加载器(加载引导)比那些Tomcat/lib(普通)和/WEB-INF/lib(Web应用程序).引导类加载器不了解常见和webapp库.反过来说.在常见的类加载器有知识有关的引导类加载器和web应用程序的类加载器有大约两个知识.由于Servlet API通常由公共类加载器加载,这只能意味着FileUpload API是由引导类加载器加载的.这是错的:)
| 归档时间: |
|
| 查看次数: |
12492 次 |
| 最近记录: |