ユーザー定義ノードのクラス・ロード

Java ユーザー定義ノードが PAR ファイルとしてパッケージされている場合、Java ユーザー定義ノードは別個のクラス・ローダーにロードされます。 そのクラス・ローダーは、デプロイされた PAR 内にパッケージされているあらゆるクラスをロードします。JAR に置かれているクラスは、共用クラス・ディレクトリー内、または CLASSPATH 環境変数内にある、あらゆるクラスをオーバーライドします。 デプロイされた PAR に複数のノード・タイプが含まれている場合、それらのノードは同じクラス・ローダーを共用します。 そのため、静的データを共用するユーザー定義ノードのセットは、単一の PAR ファイルにパッケージしなければなりません。単純な JAR ファイルとしてパッケージされる Java ユーザー定義ノードは、同じクラス・ローダーにロードされます。 クラスおよびそれらのロード元のロケーションはユーザー・トレースに書き込まれるため、この情報を使用して、正しいクラスがロードされていることを確認できます。

ブローカーは、以下のクラス・ローダー・ツリーを使用します。


この図は、ブローカーが使用するクラス・ローダー・ツリーのコンポーネントを示しています。Bootstrap はツリーのルート・ノードで、その唯一の子として System があります。System の子は Common です。Common には Broker と Shared という 2 つの子があります。Broker には子がありませんが、Shared には多数の子があります。Shared の子には、Grouped や、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 最終更新: 08/21/2006
as24996_