2013-03-03 3 views
0

동적 웹 프로젝트에서 사용하려는 JPA 프로젝트를 만들었습니다.Dynamic Web Project에서 jar의 ClassNotFoundException이 발생했습니다.

이 JPA 프로젝트에서 jar 파일을 만들고이를 동적 웹 프로젝트의 lib 폴더에 추가했습니다. 그런 다음이를 동적 웹 프로젝트의 빌드 경로에 추가하고 "주문 및 내보내기"탭에서도 확인했습니다.

첫 번째 질문 :이 옵션을 사용하여 jar 파일을 일반적인 jar 파일로 생성했습니다.

enter image description here

이 괜찮 또는 뭔가를 추가해야합니까.

두 번째 질문 : buildpath에이 jar 파일을 추가 한 후이 jar 파일에서 클래스 인스턴스를 사용하면 가져 오기에 파일을 추가 할 수 있으므로 클래스에 오류가 표시되지 않습니다. 내가 클래스를 사용하는 JSP와 서블릿을 실행하려고하면

은 내가 클래스를 사용하는 라인에서 java.lang.ClassNotfoundEception 내 아파치에서 java.lang.NoClassDefFoundError가 오류가 발생합니다. 그래서 어떤 이유로 그는 런타임에 클래스를 찾지 않습니다.

여러 가지 옵션으로 항아리를 반복해서 만들려고했습니다. 다른 방법으로 (Ctrl-T) 필요한 클래스를 가져 오려고했지만 한 클래스 만 보았습니다.

내가 이상하다고 생각하는 유일한 방법은 가져 오기의 모양입니다. 내가 볼

be.project6

: 나는 같은 패키지 구조를 가지고 내 동적 웹 프로젝트에서

be.JPA.project6

: 내 JPA 프로젝트에서 내가 좋아하는 패키지 구조를 가지고 가져 오기, 나는 본다 : be.JPA.project6.data.classname

다른 구조가 있기 때문에 그가 "정상적인"패키지 구조 외부를 검색해야한다는 것을 알 것이다. 또한 "ctrl-T"를 사용하면이 클래스 만 볼 수 있습니다.

다른 프로젝트에 대한 참조를 만들고 싶지는 않지만 단지와 같이 사용하십시오.

나는 지금 어떤 단서가 없으므로 어떤 조언이라도 환영받을 것입니다.

답변

1

빌드 경로는 빌드 경로입니다. 에 사용 된 경로는 응용 프로그램을 빌드합니다.

웹 애플리케이션의 런타임 클래스 경로는 WEB-INF/클래스 디렉토리에서 구성, 항아리 세트 WEB-INF/lib입니다.

동적 웹 프로젝트의 빌드 경로에서 jar 파일을 제거하십시오. 그냥 WebContent/WEB-INF/lib 디렉토리에 놓습니다. Eclipse는이 디렉토리의 모든 jar를 빌드 경로에 자동으로 추가하고 배포 된 웹 응용 프로그램의 WEB-INF/lib 디렉토리에 넣으므로 런타임 클래스 경로의 일부이기도합니다.

+0

이것은 트릭을 만들었습니다! 정말 고마워!!!! –

관련 문제