2011-12-06 2 views
3

나는 톰캣 서블릿 코딩 아주 새로운 해요, 난이 오류 받고 있어요 : javac 컴파일하기 때문에,java.lang.NoClassDefFoundError가 : javax의/서블릿/HTTP/HttpServletRequest의

> java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest 
-> `servlet-api.jar` is in lib `tomcat_root/lib` dirctory 

CATALINA_HOME = C:\tomcat\lib\; 
JAVA_HOME = C:\Program Files\Java\jdk1.7.0_01 
Path = ....;%JAVA_HOME%\bin;%JAVA_HOME%;... 

내가 혼란 스러워요을 어떤 오류도없는 코드.

다음은 내가 사용하고있는 코드입니다. 오류의 원인을 알려주시겠습니까? 나는 할 수 없다.

package com.life; 
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import java.util.*; 
import org.apache.commons.fileupload.FileItem; 
import org.apache.commons.fileupload.FileUploadException; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 

public class Task10 extends HttpServlet { 

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, java.io.IOException { 
     try { 
      response.setContentType("text/html"); 
      java.io.PrintWriter out = response.getWriter(); 

      File destinationDir; 
      String realPath = getServletContext().getRealPath("/files"); 
      destinationDir = new File(realPath); 
      DiskFileItemFactory fileItemFactory = new DiskFileItemFactory(); 
      ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory); 
      if (ServletFileUpload.isMultipartContent(request)) { 
       List items = uploadHandler.parseRequest(request); 
      } 
      out.println(ServletFileUpload.isMultipartContent(request)); 
      out.println(realPath); 
      out.close(); 
     } 
     catch(Exception ex) { 
      log("Error encountered while uploading file",ex); 
     } 


    } 


    protected void doPost(HttpServletRequest request, 
          HttpServletResponse response) throws ServletException, 
     java.io.IOException { 
     doGet(request, response); 
    } 
} 

답변

1

어떤 Tomcat 버전을 사용하고 있습니까? Tomcat과 함께 제공되는 Servlet 항아리를 사용하고 있습니까? 아니면 별도로 다운로드 했습니까? servlet-api.jarTomcat6/lib 디렉토리에 있고의 내부 및 /server/libTomcat 5.5에 있어야합니다. /WEB-INF/lib 웹 응용 프로그램에서 서버 특정 라이브러리를 사용하고 있지 않은지 확인하십시오. 그렇지 않으면 충돌로 이어집니다.

1

CATALINA_HOME이 lib 폴더를 가리키고 있기 때문일 수 있습니다.

1

CATALINA_HOME 환경 변수가 잘못된 것 같습니다. 바람둥이는 "C : \ 바람둥이"에 설치되어있는 경우 디렉토리에, 당신은 CATALINA_HOME = C:\tomcat

2

은 CMD에두고보십시오 값을 사용해야합니다 (현재 버전 TOMCAT 7.0)

SET CATALINA_HOME = C:\Program Files\Apache Software Foundation\Tomcat 7.0;C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib;

관련 문제