【发布时间】:2014-12-26 08:20:36
【问题描述】:
当我试图将文件上传到在 localhost 上运行的服务器时,我收到了 java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream。这是我正在使用的 servlet:
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String UPLOAD_DIRECTORY = "~/EclipseProjects/DocSearch/uploads";
/**
* @see HttpServlet#HttpServlet()
*/
public UploadServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(ServletFileUpload.isMultipartContent(request)) {
try {
List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for(FileItem item: multiparts) {
if(!item.isFormField()) {
String name = new File(item.getName()).getName();
item.write(new File(UPLOAD_DIRECTORY + File.separator + name));
}
}
request.setAttribute("message", "File uploaded successfully");
} catch (Exception ex) {
request.setAttribute("message", "File upload failed due to: " + ex);
}
} else {
request.setAttribute("message", "Sorry this servlet only handles file upload requests");
}
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
}
我已经将 commons-fileupload-1.2.2.jar 添加到 WEB-INF/lib 文件夹中。我尝试创建一个新服务器并在其上运行项目,尝试从不同来源重新下载 jar 文件,但似乎都没有解决我的问题。
注意:
我已经通过了:
【问题讨论】:
标签: java servlets file-upload apache-commons