localhost에서 runnning하는 서버에 파일을 업로드하려고 할 때 java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
이 표시됩니다. 나는 이미 WEB-INF/lib 폴더에 평민 - 파일 업로드-1.2.2.jar 추가 한java.lang.NoClassDefFoundError : org/apache/commons/io/output/DeferredFileOutputStream
@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);
}
}
: 이것은 내가 사용하고있는 서블릿이다. 새 서버를 만들고 프로젝트를 실행하려고 시도했지만 다른 소스에서 jar 파일을 다시 다운로드하려고했지만 그 중 아무 것도 내 문제를 해결하지 못하는 것 같습니다.
참고 :
이미 겪었:
내가 사용하지 않은 받는다는 빌드 프로젝트하지만 프로젝트 등록 정보에서 Java 빌드 경로에 병을 추가하려고했습니다. – shyam
@shyam appache 웹 사이트에서 jar를 다운로드하여 프로젝트 빌드 pth에 추가하십시오. –
예. 그것은 트릭을했다. 내가 준 링크를 편집하면 답을 받아 들일 것입니다. (commons-fileupload는 commons-io가 아닙니다.) 이전의 항아리가 왜 효과가 없었던 지에 대한 호기심. 실제로 maven central에서 다운로드했습니다. – shyam