用户定义的节点类装入

当 Java 用户定义的节点封装成 PAR 文件时,该 Java 用户定义的节点就被装入单独的类装入器。类装入器装入已部署的 PAR 中封装的任何类。放置在 JAR 中的类覆盖共享类目录或 CLASSPATH 环境变量中的任何类。如果部署的 PAR 包含多个节点类型,则这些节点共享同一个类装入器。因此,共享静态数据的一组用户定义的节点应该被封装成单个的 PAR 文件。封装成简单 JAR 文件的 Java 用户定义的节点装入到同一个类装入器。 类以及装入这些类的位置都被写到用户跟踪中,因此,您可以使用此信息来检查是否装入了正确的类。

代理使用以下类装入器树:


该图显示代理使用的类装入器树的组件。引导程序是树的根节点并且有“系统”作为其子代。“系统”的子代是“公共”,“公共”有两个子代:代理和共享。“代理”没有任何子代,“共享”有许多子代。“共享”的子代包括“分组”和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
请参阅 授权标准覆盖机制,以获取更多信息。

要在代理中覆盖这些包,将 API 标准的 JAR 文件放入 PAR 的 /lib 目录。

JNDI 上下文

查找 JNDI 上下文时,将使用上下文类装入器。如果查找使用与用户定义的节点一起封装的类,则该上下文类装入器必须与要用于装入用户定义的节点的类装入器相同。要确保每个线程用户使用相同的类装入器,可以在用户定义的节点类中包括以下代码:
Thread.currentThread.setContextClassLoader(this.getClass().getClassLoader());
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as24996_