2009-11-08 6 views
0

Windows XP에서 Apache의 Tomcat 서버에서 실행할 서블릿을 개발하는 방법을 배우려고합니다. Java SDK 1.6.0_17에서 Tomcat 6.0을 사용하고 있습니다. 내 webapp은 Eclipse IDE의 최신 버전을 사용하여 구축하는 간단한 Hello, world 유형입니다. Tomcat 설치에서 모든 예제를 실행할 수 있지만 Eclipse에서 Tomcat webapps 폴더로 내 응용 프로그램을 내보내고 브라우저에서 액세스하려고하면 javax.servlet.http.Servlet 클래스를 사용할 수 없다는 오류가 표시됩니다. 녹이다. SDK 트리를 검색하여 이름에 javax이 없으므로 찾을 수 없습니다.Tomcat 서블릿 문제 - 클래스를 찾을 수 없습니다.

나는 인터넷 검색을 한 적이 있지만 정확하게 똑같은 문제는 발견하지 못했습니다. 내가 시도 할 수있는 모든 제안?

+0

뭔가가 고장난 것 같습니다. 자신의 코드에서 javax.servlet.http.Servlet 클래스가 사용되는 곳과 Eclipse가 구현 한 곳을 찾을 수 있습니까? (F3을 사용하여 빠르게 이동 한 다음 프로젝트 탐색기에서 편집자)). –

답변

4

servlet.jar의 Servlet 클래스는 Java EE (Java의 "엔터프라이즈"부분)의 일부이며 일반 JDK 배포가 아닙니다. 보통 Tomcat의 클래스 패스에 있기 때문에 일단 앱을 Tomcat에 배포하면 찾는데 어려움이 거의 없습니다.

일반적으로이 jar의 문제점은 Eclipse의 클래스 경로에는 일반적으로 없다는 것입니다. 따라서 컴파일 시간 문제가 발생합니다.

Tomcat에서 런타임시 정말 실종 된 경우 프로젝트의 라이브러리 종속성에서 파기 해보십시오 (Eclipse가 숨기는 부분을 파악할 수 없음). Tomcat 설치의 "common/lib"하위 디렉토리에 복사하십시오.

2

Tomcat 자체 클래스 경로 인 servlet-api.jar에서 사용할 수 있어야합니다 (즉, Tomcat/lib 폴더).

이 특정 오류가 발생하는 경우 문제가 더 많을 수 있습니다. Tomcat의 자체 라이브러리 중 하나 이상 (Tomcat/lib에있는 파일 중 하나 이상)을 Eclipse에 복제하거나 더 심하게는 JDK/lib으로 복제 할 수 있습니다. 너는 그렇게해서는 안된다. 기본 라이브러리는 모두 포함 된 곳에 보관하십시오. 복제하거나 이동하지 마십시오. 그들을 참조하십시오. 이클립스를 사용하여 웹 어플리케이션을 개발하려면

, 당신은 적어도 이클립스 자바 EE 개발자에 대한 얻었고, Servers보기를 통해 이클립스에서 Tomcat을 통합하고 전에 통합 톰캣 선택한 것을 특징으로 Dynamic Web Project을 만든해야 인스턴스를 기본 서버 인스턴스로 사용합니다.

Eclipse와 Tomcat을 함께 사용하는 것에 대한 더 많은 힌트를 얻으려면 this tutorial이 유용 할 수 있습니다. JSF 부분은 건너 뛰어도 무시할 수 있습니다.

: javax.servlet.http.Servlet 클래스가 실제로 존재하지 않는다는 것을 깨달았습니다. javax.servlet.Servlet 또는 javax.servlet.http.HttpServlet 중 하나가 필요합니다. 하지만 컴파일 타임에 이미 실행 시간이 아닌 실패했을 것입니다. 따라서 문제가 정확하지 않을 수도 있습니다.

+0

이것에 대한 한 가지 수정 사항 : servlet-api.jar은 servlet.jar의 동생입니다. 컴파일 오류를 피하기에 충분한 종속성을 만족하므로 Eclipse의 빌드 경로에 있습니다. 그러나 실제 기능을 위해서는 webapp이 실행되는 곳에서 servlet.jar을 사용할 수 있어야합니다. –

+0

파일 이름은 appserver에 따라 다릅니다. Tomcat에는 servlet.jar이 없지만 servlet-api.jar을 호출합니다. – BalusC

+0

부록 : 이클립스에 서버를 통합하고 프로젝트와 연결할 경우에만 이클립스가 찾을 수 있습니다. 이클립스 빌드 경로 등에서 수동으로 복사/참조해서는 안됩니다. – BalusC

관련 문제