Não usar valores de propriedade JNDI específicos ao WebLogic ou o protocolo t3

Deve-se remover ou substituir propriedades de nomenclatura específicas do WebLogic usadas ao obter o IntialContext em seu aplicativo. A ferramenta de migração varre arquivos Java, XML e de propriedades para os valores de propriedade: weblogic.jndi.WLInitialContextFactory, t3://.* e t3s://*. Por exemplo, se um aplicativo especificar as propriedades a seguir, a ferramenta sinalizará o texto em vermelho:

Liberty

Arquivos Java

Ao mover o aplicativo para o Liberty, não especifique um factory de contexto inicial ou uma URL de provedor nas propriedades passadas ao construtor InitialContext. Use o construtor vazio, a menos que outras propriedades de nomenclatura estejam sendo configuradas.

O exemplo a seguir ilustra o código do aplicativo que essa regra marcará ao migrar para o Liberty:


import java.util.Hashtable;
import javax.naming.InitialContext;
...
void main( String[] args ) {
Hashtable ht = new Hashtable();

ht.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
ht.put("java.naming.provider.url", "t3://localhost:7001");

InitialContext ctx = new InitialContext(ht);
}

Remova manualmente as propriedades desnecessárias:


import javax.naming.InitialContext;
...
void main( String[] args ) {
InitialContext ctx = new InitialContext();
}

Arquivos XML

Além de sinalizar arquivos java, a ferramenta sinalizará os arquivos xml que contêm valores de propriedade do WebLogic. Para o Liberty, as propriedades devem ser removidas para usar os valores de inicialização do InitialContext padrão.

Arquivos de propriedade

Além de sinalizar arquivos java e xml, a ferramenta sinalizará os arquivos de propriedades que contêm os valores de propriedade do WebLogic. Para o Liberty, as propriedades devem ser removidas.

WebSphere Application Server tradicional

Arquivos Java

Ao migrar para o WebSphere Application Server tradicional, as mesmas propriedades do WebLogic mencionadas anteriormente serão sinalizadas. Uma correção automatizada será fornecida para os arquivos Java que altera os valores da propriedade de nomenclatura WebLogic para aqueles que funcionam no WebSphere Application Server tradicional:

O exemplo a seguir ilustra o código do aplicativo que esta regra sinalizará ao migrar para o WebSphere Application Server Traditional:


import java.util.Hashtable;
import javax.naming.InitialContext;
...
void main( String[] args ) {
Hashtable ht = new Hashtable();

ht.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
ht.put("java.naming.provider.url", "t3s://localhost:7001");

InitialContext ctx = new InitialContext(ht);
}

Usando o mesmo exemplo mostrado anteriormente, depois de executar a correção automatizada para WebSphere Application Server tradicional, o código será migrado conforme mostrado:


import java.util.Hashtable;;
import javax.naming.InitialContext;;

...

void main( String[] args ) {
Hashtable ht = new Hashtable();

ht.put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:2809");

InitialContext ctx = new InitialContext(ht);
}

Observação: A correção automatizada usará a porta de inicialização padrão, 2809, para todos os URLs t3, incluindo os URLs SSL ' t3s:// '. Verifique as configurações do servidor para certificar-se de que a porta correta seja utilizada para cada URL. Para obter informações adicionais, consulte o artigo Configurações de número da porta para o WebSphere Application Server tradicional.

Outra opção ao mover para o WebSphere Application Server Traditional é remover as propriedades e usar o construtor InitialContext() vazio.

Aviso : A correção automática ajustará apenas os literais. Se uma URL estiver sendo construída utilizando variáveis, ela precisará ser migrada manualmente.

Exemplo de variável anterior:

void main( String[] args ) {
Hashtable ht = new Hashtable();

...

String port = "7001";
ht.put("java.naming.provider.url", "t3://localhost:" + port);

InitialContext ctx = new InitialContext(ht);
}

Exemplo de variável após:

void main( String[] args ) {
Hashtable ht = new Hashtable();

...

String port = "7001";
ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:" + porto);

InitialContext ctx = new InitialContext(ht);
}

Observe que a variável de sequência port não foi alterada. Certifique-se de que todas essas variáveis sejam migradas.

O exemplo a seguir ilustra mudanças semelhantes aplicadas ao código XML.

Código XML antes de :

< nome da propriedade= "java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory" />

< nome da propriedade= "java.naming.provider.url" value="t3://localhost:7001/" />

Código XML depois:

< nome da propriedade= "java.naming.factory.initial" valor="com.ibm.websphere.naming.WsnInitialContextFactory"/>

< nome da propriedade= "java.naming.provider.url" valor="corbaloc:iiop:localhost:2809/"/>

Arquivos de propriedade

Enquanto a ferramenta de migração verifica os arquivos de propriedades, as propriedades de fábrica de nomes e de provedor não são migradas por uma correção automatizada. No WebSphere Application Server tradicional, remova as propriedades ou mude-as para os valores de propriedade de nomenclatura do WebSphere.

Veja também a regra Usar valores de propriedade JNDI portáteis.