2011-08-10 2 views
35

IDE에서 실행중인 Tomcat 7과 함께 Eclipse 3.7 (STS)을 사용하고 있습니다. 필자는 새로운 동적 웹 프로젝트를 만들고 웹 컨텐츠 루트 폴더에 단일 JSP 파일을 추가했습니다. Eclipse에서 문제없이 Tomcat을 실행하고 JSP에 액세스 할 수 있습니다.Eclipse 빌드 경로에서 사용자 라이브러리를 사용할 때 ClassNotFoundException이 발생했습니다.

사용자 라이브러리에서 프로젝트에 몇 가지 타사 JAR 파일을 추가했습니다 (필자는 Maven 또는 자동 종속성 관리 기능을 사용하지 않고 있습니다). JSP에서 프로젝트의 JAR 파일에서 클래스를 참조 할 때 문제없이 컴파일 할 수 있지만 Tomcat에 배포하면 JSP에서 ClassNotFoundException이 발생합니다. 분명히 Tomcat은 내 라이브러리 설정에서 JAR 파일을 찾을 수 없습니다. 나는 Tomcat Server를위한 Run As 설정을 만들어 보았고 클래스 패스를 프로젝트의 클래스 패스 설정과 일치하도록 설정했지만, 여전히 같은 classnotfound 문제가 발생한다.

모든 프로젝트 JAR을 WEB-INF/lib 디렉토리에 수동으로 복사하여 문제를 해결할 수 있으므로 webapp가 모든 종속성을 찾을 수 있습니다.하지만 그건 불합리한 일이며 유지 보수이므로 해결책이 될 것이라고는 생각하지 않습니다. 악몽.

내가 누락 된 항목이 있습니까?

답변

89

프로젝트 속성에서는 배포 어셈블리로 이동하십시오. 사용자 라이브러리로 수동으로 추가 한 빌드 경로 항목도 추가하십시오. 그것은 배포 된 WAR의 /WEB-INF/lib에서 끝납니다.

enter image description here

+6

LIFESAVER! 그게 효과가 있었어, 나는 쉬운 방법이 있어야한다는 것을 알았어, 예 수 그리스도, 이제 수면을 취할 수있어, 백만 달러! – user646584

+1

버전 3.4.2에서 이전 이클립스를 사용하는 경우 프로젝트 속성의 옵션 이름은 'Java EE Module Dependencies'입니다. – Bizmarck

+0

@bizmark : 맞습니다. http://stackoverflow.com/questions/3511479/business-logic-layerin-servlet-and-jsp/3511933#3511933 – BalusC

2

jar 파일을 WEB-INF/lib 폴더에 복사해야합니다. 즉, 해당 위치에 있어야합니다.

이클립스는 모든 종속성을 포함하는 WAR 파일을 생성 할 수있는 옵션을 제공해야합니다. 웹 도구를 사용하지 않았지만 좋은 방법으로 또는 다른 모든 종속성을 WEB-INF/lib 또는 클래스 로더는 그것들을 찾을 수 없다.

+0

이클립스 STS에서 동적 웹 프로젝트에 대한 WAR 설정을 찾을 수없는,하지만 난 당신이 내가 년 동안 이클립스 갈릴레오를 사용 후 예상 무엇 때문에 대해 얘기하고 정확하게 알고있다. – user646584

관련 문제