2009-10-20 3 views
2

내 웹 응용 프로그램은 기능의 일부 (기본 경로가 PATH에 제공됨)에 기본 DLL을 사용합니다. 모든 것은 WAR를 변경하고 JBoss가이 WAR를 변경하기 전까지 작동합니다. 이 시점에서 dll은 더 이상 발견되지 않으며 수동으로 서버를 다시 시작해야합니다.JBoss (핫) 재배포 후에 필요한 dll 찾기?

뜨거운 배포 후에 dll을 다시 응용 프로그램에로드하는 가장 좋은 방법은 무엇입니까?

답변

1

너무 쉽지 않을 수도 있습니다. 일반적으로 DLL은 특정 클래스 로더에 연결됩니다. 다시 배포하면 응용 프로그램에 사용 된 원래 클래스 로더가 파괴되었음을 의미합니다. 아쉽게도 Java Virtual Machine은 두 번째 클래스 로더가 DLL을 다시로드하는 것을 허용하지 않습니다.

가상 컴퓨터에서 결코 언로드되지 않는 정적 인 것이 있어야합니다. 어쩌면 첫 번째 응용 프로그램을 다시 배포해도 DLL에 영향을 미치지 않으므로 DLL을로드하는 두 번째 응용 프로그램을 사용하는 것이 해결책 일 수 있습니다. DLL을로드하고 응용 프로그램에 추가하는 대신 JBoss 자체의 클래스 경로에 추가하는 Jar 파일을 만들 수도 있습니다. 일반적으로 이러한 서버에는 모든 응용 프로그램에서 공유 할 jar 파일을 추가 할 수있는 "공유"디렉토리가 있습니다.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4225434

:

일부터 다음 버그

은로드 서블릿보다 훨씬 더 일반적이며이 문제에 약간의 실마리를
관련 문제