Nas versões do Liberty anteriores à 20.0.0.12, os componentes EJB não eram ligados ao namespace Java Naming and
Directory Interface (JNDI) raiz de um servidor como são no WebSphere Application Server tradicional, portanto,
as consultas e ligações @EJB nos arquivos ibm-ejb-jar-bnd.xml ou
ibm-web-bnd.xml podem requerer
migração. Se você não estiver usando o Liberty 20.0.0.12 ou mais recente, essas consultas deverão usar a sintaxe JNDI móvel para
os componentes EJB que estão hospedados dentro do mesmo servidor e
corbaname:
URLs para componentes EJB que estão hospedados em outro servidor.
Apenas os namespaces a seguir eram aceitos antes da versão 20.0.0.12 do Liberty:
java:global/ java:app/ java:module/ java:comp/ corbaname:Esta regra sinaliza @EJB anotações com um lookup valor de atributo que não inicia com um dos namespaces listados acima.
//this lookup will be flagged
@Stateless
@EJB(lookup="ejb/myApp/myModule/MyBeanComponent")
Essa regra também sinaliza sequências literais que começam com "ejblocal:".
//this will be flagged
new InitialContext().lookup("ejblocal:" + getEJBName());
A regra também sinaliza nomes JNDI que não usam um dos namespaces listados acima para o binding-name valor de atributo no <ejb-ref> nos arquivos ibm-ejb-jar-bnd.xml e ibm-web-bnd.xml .
< code> // esta ligação não será sinalizada < ejb-ref name= "TestBean" binding-name="java:global/TestApp/TestModule/TestBean!test.TestRemoteInterface"> < /code>
A regra também sinaliza nomes JNDI que não usam um dos namespaces listados acima para o jndiName valor de atributo no <ejbRefBindings> nos arquivos ibm-ejb-jar-bnd.xmi e ibm-web-bnd.xmi .
< code> // este nome JNDI será sinalizado <ejbRefLigações jndiName= "java:myFolder/"> < /code>
Para obter informações adicionais sobre como usar o Enterprise Java Beans 2.x no Liberty, veja Usando Enterprise JavaBeans como interfaces remotas no Liberty.