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:
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(); } |
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.
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.
Ao migrar para o WebSphere Application Server tradicional, as mesmas propriedades do WebLogic mencionadas anteriormente serão sinalizadas. No scanner de origem, há uma correção rápida para arquivos Java que muda os valores de propriedade de nomenclatura do 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, após executar a correção rápida do Java para o 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); } |
Nota: A correção rápida usa a porta de autoinicialização padrão, 2809, para todas as URLs t3, incluindo as URLs 't3s://' SSL. 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 rápida ajusta apenas os literais. Se uma URL estiver sendo construída utilizando variáveis, ela precisará ser migrada manualmente.
Exemplo de variável antes da correção rápida:|
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); } |
|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:" + port); 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 executar a correção rápida:|
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/> <property name="java.naming.provider.url" value="t3://localhost:7001/"/> |
|
<property name="java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/> <property name="java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/> |
Enquanto a ferramenta de migração verifica os arquivos de propriedades, o factory de nomenclatura e as propriedades do provedor não são migradas por uma correção rápida. 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.