这个问题在这里已有答案:
我想使用commons-fileupload-1.2.2将doc文件上传到servlet .
我在前端使用此代码:
<form action="fileuploader" method="post" enctype="multipart/form-data">
<br>File : <input type="file" name="uploadedFile">
<br><input type="submit">
并在servlet中使用此代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
}
but system gives me a this error
SEVERE: Servlet.service() for servlet FileUploaderServlet threw exception
java.lang.ClassNotFoundException: org.apache.commons.fileupload.servlet.ServletFileUpload
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.jspFileUploader.fileUploader.FileUploaderServlet.doPost(FileUploaderServlet.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
我认为问题在于这一行:
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
请帮帮我
4 回答
您需要删除webapp项目的
/WEB-INF/lib
文件夹中的commons-fileupload.jar
和commons-io.jar
文件 . 该文件夹最终成为webapp的运行时类路径的一部分 . 请注意,在像Eclipse / Netbeans / IntelliJ这样体面的IDE中,你需要在之后使用buildpath属性 . IDE非常清楚/WEB-INF/lib
中的库将被用作运行时类路径的一部分,因此它会自动将其添加到构建路径中 .不,问题是(Tomcat?)找不到“org.apache.commons.fileupload.servlet.ServletFileUpload” .
确保已安装正确的.jar,确保已正确配置服务器和/或Web应用程序 .
你没有提供任何关于你如何运行“servlets”的详细信息(Tomcat?Jboss?还有其他什么?),所以我们不能指导你“问题是你的服务器配置!”
ADDENDUM:将.jar文件复制到Tomcat lib目录,重新启动Tomcat,然后重试 . 这应该解决“找不到类”错误 .
除了将这些库添加到
WEB-INFO/lib
之外,我还必须从我的servlet更改导入以使用这些特定的库,来自:至
你应该在 /WEB-INF/lib 中有 commons-fileupload.jar 和 commons-io.jar 个文件