2009-09-18 6 views
1

websphere 서버에서 jars를로드하는 데 문제가 있습니다. jar의 일부는 WEB-INF/lib에 있고 일부는 로컬 하드 드라이브 (예 : c : \ lib 폴더)에 있습니다. 어떻게 응용 프로그램을 시작하는 동안 이러한 모든 병을로드 할 수 있습니다. WEB-INF jar가로드되면 외부 항아리가로드되지 않고 반대가됩니다.이 문제에 대한 도움이 필요합니다 ...Websphere 6.1 서버

답변

4

WebSphere에는 클래스 로더 계층 구조가 있으므로 상위 클래스 로더는 하위 클래스 로더를 볼 수 없으므로 응용 프로그램의 다른 측면을 다른 위치에 배치하십시오.

WebSphere 자체 lib 디렉토리에 응용 프로그램 jar를 배치하지 마십시오. WebSphere 자체 클래스 경로를 절대로 조정하지 마십시오. 외부 항아리를 보이게하는 방법이 있습니다. 잠시 후에 설명하겠습니다.

로드 할 수 있도록 JAR 파일을 넣을 수있는 위치는 세 곳입니다. 지금까지는 WEB-INF/lib에 JAR 파일을 두는 것이 가장 좋습니다. 검색 순서 기본 설정 인 PARENT LAST를 지정하여 websphere가 제공하는 jar보다 우선 순위를 갖도록 설정할 수 있습니다. 그러나 일부 기본 jar는 무시할 수 없습니다. 예를 들어 IBM 보안을 대체 할 수 없습니다.

두 번째로 EAR 파일의 루트에 jar를 추가 할 수 있습니다. WEB-INF/lib jar는 EAR jars를 볼 수 있지만 EAR jars는 WEB-INF/lib jars를 볼 수 없습니다.

마지막으로 WebSphere "Shared Libarary"를 지정할 수 있습니다. 콘솔을 통해 매우 쉬운 방법 인 정보 센터를 참조하십시오. 공유 라이브러리에는 classpath가 있으며, jar 파일을 추가합니다. 그런 다음 개별 응용 프로그램이나 전체 서버에 공유 라이브러리를 할당합니다.

다시 WEB 앱에서 공유 라이브러리를 볼 수 있지만 대화가 사실이라고 생각하지 않습니다. 따라서 Shread 라이브러리에 프레임 워크 코드를 넣는 것이 효과가 없을 수도 있습니다.

+0

"web-inf/lib jar와 다른 외부 jar를 동시에 볼 수있게하는 다른 방법이 없습니까?" - 내가 설명하는 방법은 일을하는 "표준"WAS 방식이며 유용한 대안이 없다는 것을 알고 있습니다. 이 문제를 해킹 할 때주의해야합니다. – djna

관련 문제