2012-04-03 3 views
5

Websphere에서는 "공유 라이브러리"를 만들고 응용 프로그램과 연결할 수 있습니다. 클래스 패스의 위치면에서 공유 라이브러리의 위치가 무엇인지 알고 싶습니다. 즉,로드 된 공유 라이브러리 또는 EAR/WAR 자체가 더 높은 "우선 순위"를 갖는 중복 된 리소스의 경우에 알고 싶습니다.Websphere 공유 라이브러리 "우선 순위"?

예를 들어, 내 응용 프로그램에서 appConfig.xml이라는 리소스가 있다고 가정하고 app 서버에 로컬 디렉토리를 만들고 그 디렉토리에 다른 appConfig.xml을 추가하려고합니다. 내 앱에서 리소스 (예 : 입력 스트림 열기)를로드하려고하면로드 될 파일은 무엇입니까?

나는 잠시 동안 수색했으며 아무데도 이것을 언급 할 수 있습니다. 실험을 통해 나 혼자서 시도해 볼 수는 있지만 공식적인 기대되는 행동이 있다면 그 사실을 알고 싶습니다.

덕분에 내가 여기에 생각을 많이

답변

4

클래스 로더 중에서 순서는 "부모 우선"(및 응용 프로그램 클래스/리소스 마지막) 또는 "부모 마지막"(응용 프로그램 클래스/리소스 우선) 중 하나 인 소위 "클래스 로더 모드"를 사용합니다. 하나의 응용 프로그램 클래스 로더의 경우, 클래스 패스 순서는 다음과 같습니다

  1. 모듈 클래스 경로
  2. 종속 클래스 경로 (클래스 경로 MANIFEST.MF에서)
  3. 공유 라이브러리 클래스 경로

주문을 변경하는 구성 옵션이 없습니다. 이 주문은 문서에서 명시 적으로 상태라고 생각하지 않지만 변경 가능성이 매우 낮다고 생각합니다. 어쨌든, 나는 그것에 의존하지 않는 것이 좋습니다. 단일 클래스 로더 내에서 고유 한 리소스/클래스 이름을 사용하도록하는 것이 좋습니다.

+2

WAS가 라이브러리를 사용하는 방법에 대해 의문을 가지며 WAS의 사용 방법을 알고 싶으면 WAS 관리 콘솔의 "WebSphere 웹 콘솔 -> 문제 해결 -> 클래스 로더 표시기"보기를 ​​사용할 수 있습니다. – MrJames

+1

예, 클래스 로더 뷰어는 서버가 어떻게 물건을 조립하는지 결정하는 데 유용 할 수 있습니다. 그것은 반드시 주문에 대한 이론적 근거를 설명하지는 않습니다. –

+0

사실 전에 읽었습니다. http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html 마지막에는 "이 공유 라이브러리에 격리 된 클래스 로더 사용"에 대한 특별 섹션이 있으며이 섹션에서는 사용자가 지정한 순서가 언급됩니다. 일반적인 공유 라이브러리의 경우 공유 라이브러리에 분리 된 클래스 로더를 사용하지 않는다는 힌트라고 생각합니다. 내 이해가 정확한지 누군가가 확인할 수 있습니까? (그렇지 않다면 격리 된 클래스 로더와 일반 공유 라이브러리 사이의 차이점은 무엇입니까?) –