사용자 정의 노드 클래스 로딩

Java 사용자 정의 노드가 PAR 파일로 패키지되면 Java 사용자 정의 노드는 별도의 클래스 로더에서 로드됩니다. 클래스 로더는 전개된 PAR 내에 패키지된 모든 클래스를 로드합니다. JAR에 넣은 클래스는 공유 클래스 디렉토리 또는 CLASSPATH 환경 변수에 있는 클래스를 대체합니다. 전개된 PAR에 두 가지 이상의 노드 유형이 있으면 노드는 같은 클래스 로더를 공유합니다. 그러므로 정적 데이터를 공유하는 사용자 정의 노드 세트는 단일 PAR 파일로 패키지해야 합니다. 단순 JAR 파일로 패키지된 Java 사용자 정의 노드는 같은 클래스 로더에서 로드됩니다. 로드되는 위치와 클래스가 사용자 추적에 기록되므로 이 정보를 사용하여 올바른 클래스가 로드되고 있는지 점검할 수 있습니다.

브로커는 다음과 같은 클래스 로더 트리를 사용합니다.

다이어그램은 브로커에 사용된 클래스 로더 트리의 구성요소를 보여줍니다. 부트스트랩은 트리의 루트 노드이며 유일한 하위로서 시스템을 가지고 있습니다. 시스템의 하위는 공용입니다. 공용에는 브로커와 공유 등 두 개의 하위가 있습니다. 브로커에는 하위가 없으며 공유에는 여러 개의 하위가 있습니다. 공유의 하위에는 그룹 및 Java 사용자 정의 노드가 있습니다. 여러 개의 사용자 정의 노드가 있을 수 있습니다.

다음은 클래스 로더 트리의 구성요소에 대한 설명입니다.

사용자 정의 노드 클래스 로드 검색 경로

PAR의 사용자 정의 노드 패키지

브로커는 다음과 같은 검색 경로를 사용하여 사용자 정의 노드 클래스를 찾습니다.
  1. /classes 전개된 PAR에서 클래스를 찾습니다.
  2. /lib 전개된 PAR에서 JAR 파일을 찾습니다.
  3. <WorkPath>/shared-classes/ JAR 파일을 찾습니다.
  4. CLASSPATH 환경 변수

JAR의 사용자 정의 노드 패키지

브로커는 다음과 같은 검색 경로를 사용하여 사용자 정의 노드 클래스를 찾습니다.
  1. 전개된 JAR 파일
  2. <WorkPath>/shared-classes/ JAR 파일을 찾습니다.
  3. CLASSPATH 환경 변수

클래스 대체를 위한 승인된 표준

승인된 표준 대체 메커니즘을 사용하여 다음 표준 패키지를 JRE에서 대체할 수 있습니다.

  • javax.rmi.CORBA
  • org.omg.CORBA
  • org.omg.CORBA.DynAnyPackage
  • org.omg.CORBA.ORBPackage
  • org.omg.CORBA.portable
  • org.omg.CORBA.TypeCodePackage
  • org.omg.CORBA_2_3
  • org.omg.CORBA_2_3.portable
  • org.omg.CosNaming
  • org.omg.CosNaming.NamingContextExtPackage
  • org.omg.CosNaming.NamingContextPackage
  • org.omg.Dynamic
  • org.omg.DynamicAny
  • org.omg.DynamicAny.DynAnyFactoryPackage
  • org.omg.DynamicAny.DynAnyPackage
  • org.omg.IOP
  • org.omg.IOP.CodecFactoryPackage
  • org.omg.IOP.CodecPackage
  • org.omg.Messaging
  • org.omg.PortableInterceptor
  • org.omg.PortableInterceptor.ORBInitInfoPackage
  • org.omg.PortableServer
  • org.omg.PortableServer.CurrentPackage
  • org.omg.PortableServer.POAManagerPackage
  • org.omg.PortableServer.POAPackage
  • org.omg.PortableServer.portable
  • org.omg.PortableServer.ServantLocatorPackage
  • org.omg.SendingContext
  • org.omg.stub.java.rmi
  • org.w3c.dom
  • org.xml.sax
  • org.xml.sax.ext
  • org.xml.sax.helpers
자세한 정보는 Endorsed Standards Override Mechanism을 참조하십시오.

브로커에서 이러한 패키지를 대체하려면 API 표준의 JAR 파일을 PAR의 /lib 디렉토리에 넣으십시오.

JNDI 컨텍스트

JNDI 컨텍스트를 조회할 때 컨텍스트 클래스 로더가 사용됩니다. 조회 시 사용자 정의 노드로 패키지된 클래스를 사용할 경우 컨텍스트 클래스 로더는 사용자 정의 노드를 로드하는 데 사용할 클래스 로더와 같아야 합니다. 각 스레드가 같은 클래스 로더를 사용하는지 확인하기 위해 다음 코드를 사용자 정의 코드 클래스에 넣을 수 있습니다.
Thread.currentThread.setContextClassLoader(this.getClass().getClassLoader());
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
as24996_