2012-09-22 2 views
1

JSP로 웹 개발을 시작하고 있으며 응용 프로그램을 사용하고 있습니다. 내 개인 라이브러리에있는 사용자 지정 로깅 클래스가 있습니다. 변경을 할 때마다 라이브러리를 jar 파일로 내보내고 싶지 않으므로 Build Path --> Projects --> Add --> (library name)으로 이동하여 내 웹 앱을 마우스 오른쪽 버튼으로 클릭하여 빌드 경로에 Eclipse 라이브러리를 추가했습니다.Eclipse에서 사용자 지정 라이브러리를 사용하면 ClassNotFoundException이 throw됩니다.

Java 클래스로 가져올 때 Eclipse에서 오류를 가져 오지 않습니다. 비록, 내 응용 프로그램 클래스 중 하나 (내 사용자 지정 로깅 클래스를 가져온)에서 메서드를 호출하고 ClassNotFoundException을 throw합니다.

온라인으로 보았는데 (내가 틀렸다면 수정하십시오) 문제를 해결하는 방법은 내 라이브러리를 jar 파일로 내 보낸 다음폴더에 넣고 경로를 구축하십시오.

내 라이브러리를 자주 변경하므로이 작업을 원하지 않습니다. 그렇다면 어떻게 라이브러리를 내 보내지 않고 빌드 경로에 있다는 것을 Tomcat에 알릴 수 있습니까?

미리 감사드립니다.

+0

왜 라이브러리를 JAR에 패키징하지 않으시겠습니까? 또한이 라이브러리를 빌드 경로에 어떻게 추가하고 있습니까? – asgs

+0

제 질문에서 말했듯이 저는 제 도서관을 자주 변경합니다. 나는 그것을 바꿀 때마다, 그리고 두 번째 질문을 위해 (내 질문에) 나는 내 웹 앱을 마우스 오른쪽 버튼으로 클릭하여'Build Path -> Projects - -> 추가 -> (라이브러리 이름)'. – mattbdean

답변

2

나는 보통 당신이 완전히 다른 방식으로 행동한다는 제안으로 질문에 대답하지 않으려하지만,이 경우에는 보증한다고 생각합니다.

그래서 첫 번째 로깅은 "해결 된 문제"입니다. 이것은 대부분의 사람들이 다시 발명해서는 안되는 일종의 바퀴입니다. LogBack 및 SLF4J에서 로그를 가져옵니다. 정말 극히 독특한 상황이 있다면 가장해야 할 일은 새로운 Appender를 구현하는 것입니다.

이제 더 일반적인 질문입니다. 내가 종종 고군분투하는 개발자들에게하는 제안은 프로젝트의 특정 IDE에 대한 의존성을 제거하는 것입니다. 프로젝트가 명령 줄에서 빌드, 디버깅 및 패키징 될 수 있도록 구성되어 있다면 훨씬 쉬워집니다. 그런 다음 IDE를 계속 사용할 수 있습니다. 프로젝트를 종속시키지 마십시오.

이렇게하는 방법에는 여러 가지가 있지만 잘 작동하고 Eclipse와 다른 많은 IDE와 통합되는 인기있는 제품은 Maven입니다.

유틸리티 라이브러리와 그것에 의존하는 프로젝트가 Maven으로 빌드 된 경우 유틸리티 라이브러리에 종속되어 있음을 프로젝트의 Maven 구성에서 간단하게 선언 할 수 있습니다.

그러면 유틸리티 라이브러리의 프로젝트에서 'mvn install'을 수행하면 종속 프로젝트가 변경 사항을 적용합니다.

작업이 모두 끝나면 Maven 프로젝트를 Eclipse로 가져올 수 있으며 모든 프로젝트가 Eclipse에서 작동합니다.

+0

감사합니다. 내 미래 프로젝트를 위해 도전적으로 Maven을 조사 할 것입니다. 또한, 로깅 클래스의 경우, 나는 그것을 재미있게 만들었고 그것을 테스트하고있었습니다. – mattbdean

+0

나는 '재미'에 대한 당신의 생각에 박수를 보냅니다. 그러나 프로덕션 응용 프로그램에서 사용자 정의 로거를 사용하지 말 것을 제안합니다. – GreyBeardedGeek

+0

그래, Java 로깅 클래스로 전환 할 것입니다. – mattbdean