Não usar os nomes da JNDI local

No WebLogic e em aplicativos do JBoss, o elemento <local-jndi-name> define o nome da JNDI para o home local do bean na árvore da JNDI global. Ele é definido no arquivo weblogic-ejb-jar.xml ou jboss.xml.

O WebSphere(R) não permite o mapeamento de homes locais em nomes da JNDI na árvore da JNDI global. Em vez disso, eles são mapeados na árvore da JNDI do contêiner local. Por essa razão, os programadores devem acessar os enterprise beans locais utilizando uma referência da JNDI no espaço de nomes local e não o nome da JNDI no espaço de nomes global.

Essa regra é acionada quando um elemento <local-jndi-name> é encontrado em weblogic-ejb-jar.xml ou em jboss.xml. A correção automatizada processará os arquivos Java, os descritores de implantação e as associações para permitir que essas referências funcionem em WebSphere.

Todos os pacotes relacionados ao aplicativo nos quais o elemento <local-jndi-name> é localizado são processados. Se o seu projeto EAR do aplicativo não for localizado ou não estiver associado ao projeto EJB localizado, apenas o projeto EJB será processado. É importante ter seus projetos relacionados definidos corretamente.

Quando a correção automatizada estiver disponível e tiver sido aplicada, ela examinará todos os arquivos Java no aplicativo em que o <local-jndi-name> for encontrado. Ela faz a varredura para encontrar consultas de contexto direto para o nome da JNDI local e por consultas da referência EJB a esse nome.

Por exemplo, se o nome JNDI local for ejb/myBeanLocalHome , os exemplos de código a seguir acionam atualizações para código, descritores de implementação e ligações ou ambos.

Exemplos de consulta do Java:

ctx.lookup("ejb/myBeanLocalHome");

ctx.lookup("java:comp/ejb/myBeanLocalHome");

ctx.lookup(myBeanLocalHomeNameVariable);

O código Java é alterado no primeiro exemplo para ctx.lookup("java:comp/ejb/myBeanLocalHome") para que seja feita uma pesquisa de referência EJB. Os outros dois exemplos Java permanecem inalterados. Em todos os três casos, a correção automatizada atualizará os descritores de implantação e as associações do projeto.

Quando uma consulta para o nome da JDNI local específico for detectada para um projeto e quando uma variável for utilizada e a procura não puder ser determinada, o arquivo web.xml ou ejb-jar.xml será modificado para incluir um <ejb-local-ref> ao bean que definiu o nome da JNDI local. No caso de um projeto EJB, o elemento <ejb-local-ref> é incluído em cada bean que está definido no ejb-jar.xml. No caso do arquivo web.xml, uma referência é incluída no bean que definiu o nome da JNDI local. Para ambos os casos, o nome da JNDI <ejb-local-ref> é incluído no arquivos de ligações para o projeto.