Carregamento de Classe do Nó Definido pelo Usuário

Quando um nó definido pelo usuário em Java é empacotado como um arquivo PAR, esse nó é carregado em um carregador de classe separado. O carregador de classe carrega qualquer classe empacotada dentro do PAR implementado. As classes colocadas no JAR substituem todas as classes que se encontram no diretório de classes compartilhado ou na variável de ambiente CLASSPATH. Se o PAR implementado contiver mais de um tipo de nó, os nós compartilharão o mesmo carregador de classe. Conseqüentemente, um conjunto de nós definidos pelo usuários que compartilha dados estáticos, deve ser empacotado em um único arquivo PAR. Os nós definidos pelos usuários Java empacotados como arquivos JAR simples são carregados no mesmo carregador de classe.As classes e o local a partir dos quais eles são carregados são gravados no rastreio do usuário, portanto, você pode utilizar estas informações para verificar se as classes corretas estão sendo carregadas.

O intermediário utiliza a seguinte árvore do carregador de classe:


O diagrama mostra os componentes da árvore do carregador de classe utilizados pelo intermediário. Bootstrap é o nó raiz da árvore e tem System como seu único filho. O filho de System é Common. Common possui dois filhos: Broker e Shared. Broker não possui nenhum filho e o Shared possui muitos filhos. Os filhos de Shared incluem Grouped e nós Java definidos pelo usuário. Pode haver um número qualquer de nós Java definidos pelo usuário.

Os itens a seguir descrevem os componentes na árvore do carregador de classe:

Caminhos de Procura de Carregamento de Classe de Nós Definidos pelos Usuários

Pacote de Nós Definidos pelos Usuários em um PAR

O intermediário utiliza o caminho de procura a seguir para localizar as classes de nós definidos pelos usuários:
  1. /classes para localizar as classes no PAR implementado.
  2. /lib para localizar todos os arquivos JAR no PAR implementado.
  3. <WorkPath>/shared-classes/ para localizar todos so arquivos JAR.
  4. CLASSPATH variável de ambiente.

Pacote de Nós Definidos pelos Usuários em um JAR

O intermediário utiliza o caminho de procura a seguir para localizar as classes de nós definidos pelos usuários:
  1. O arquivo JAR implementado.
  2. <WorkPath>/shared-classes/ para localizar todos os arquivos JAR
  3. CLASSPATH variável de ambiente.

Padrões Aprovados para Substituição de Classes

O mecanismo de substituição de padrões aprovados permite que os pacotes padrão a seguir sejam substituídos no 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
Consulte o Padrões Aceitos Substituem Mecanismo para obter informações adicionais.

Para substituir esses pacotes no intermediário, coloque os arquivos JAR para os padrões API no diretório /lib do PAR.

Contexto JNDI

Quando procurar um contexto JNDI, o carregador de classe de contexto é utilizado. Se a consulta utilizar classes empacotadas com um nó definido pelo usuário, o carregador de classe de contexto deverá ser o mesmo que o carregador de classe sendo utilizado para carregar o nó definido pelo usuário. Para assegurar que cada encadeamento utiliza o mesmo carregador de classe, o código a seguir pode ser incluído na classe de nós definidos pelos usuários:
Thread.currentThread.setContextClassLoader(this.getClass().getClassLoader());
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
as24996_