응용 프로그램에서 사용자 정의 ClassLoader
을 사용해야합니다.
좋은 소식은 직접 작성하지 않아도된다는 것입니다. Java 내장형 인 java.net.URLClassLoader
을 사용할 수 있습니다. 나쁜 소식은 Tomcat에 코드를 연결해야하므로 코드가 필요할 수도 있다는 것입니다.
이 검증되지 않은 제안이다 :
- 은 Tomcat의
WebappClassLoader
- 가
URLClassLoader
멤버를 추가하고 생성자 (또는 start()
같은 LifecycleListener
이벤트 중 하나)
- 재정에 초기화 확장하는
ClassLoader
쓰기 같은 메소드의 슈퍼 클래스의 메소드를 호출하는 모든 메소드 및 사용하고있는 URLClassLoader의 같은 메소드를 호출합니다. 순서에 따라 당신도 super.whatever
또는 urlClassLoader.whatever
은 당신에게 달려 문의 : 당신이 당신의 웹 응용 프로그램의 META-INF/context.xml
파일에 <Loader>
을 정의하여 사용자 정의 ClassLoader
를 설치 일
- 을 수행하는 방법을 결정하기 위해 서블릿 사양을 참조하십시오.
위의 항목 중 하나라도 도움이 필요하면 Tomcat users' mailing list으로 이관하십시오. 나는 이런 종류의 일을 할 수있는 URLClassLoader
를 사용하여 생각
편집 2014년 11월 4일
참고 깨지기 쉬운, 오류가 발생하기 쉬운, 아마 좋은 생각이다. 대신 배포 프로세스를 수정하여 클러스터에서 웹 응용 프로그램을 업데이트하는 것이 더 쉽습니다. 이러한 작업을 위해 Tomcat의 "팜 웹 배포자"를 사용하거나 다른 솔루션을 사용할 수 있습니다. 그러나 네트워크를 통해 클래스를로드하면 삶이 복잡해지며 어떤 경우에는 이상하게 재생산되지 않는 동작이 발생할 수 있습니다.
가능한 dup? http://stackoverflow.com/questions/22569710/how-can-i-automatically-deploy-a-war-from-nexus-to-tomcat – PaulProgrammer