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 incluída no pacote do arquivo PAR implementado. As classes que são colocadas no arquivo JAR substituem as classes que estão no diretório de classes compartilhado ou a variável de ambiente CLASSPATH. Se o arquivo PAR implementado contiver mais de um tipo de nó, os nós compartilharão o mesmo carregador de classe. Portanto, um conjunto de nós definidos pelo usuário que compartilham dados estáticos deve ser incluído no pacote de 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 de onde elas são carregadas 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. Qualquer número de nós Java definidos pelo usuário podem esta presentes.

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

Pacote de nós definidos pelo usuário em um arquivo 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 classes no arquivo PAR implementado.
  2. /lib para localizar arquivos JAR no arquivo PAR implementado.
  3. WorkPath/shared-classes/ para localizar todos so arquivos JAR.
  4. CLASSPATH variável de ambiente.

Pacote de nós definidos pelo usuário em um arquivo 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 estes pacotes no intermediário, coloque os arquivos JAR para os padrões da API no diretório /lib do arquivo 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

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:13:13

as24996_