No Liberty anterior à versão 20.0.0.12, os beans Enterprise JavaBeans (EJB) eram ligados apenas ao
namespace
java:[scope]. Os beans EJB não eram ligados ao namespace Java Naming and Directory Interface (JNDI) raiz de um servidor, ou seja, não era possível definir os nomes de ligação JNDI. Os atributos de ligação EJB que permitem
especificar o nome JNDI no WebSphere Application Server tradicional
eram ignorados no Liberty.
Os atributos de ligação EJB a seguir do arquivo ibm-ejb-jar-bnd.xml eram ignorados no Liberty.
session simple-binding-namesession component-idsession local-home-binding-namesession remote-home-binding-nameinterface binding-nameOs atributos de ligação EJB a seguir do arquivo ibm-ejb-jar-bnd.xmi eram ignorados no Liberty.
ejbBindings jndiNameEsta regra sinaliza todos os nomes de ligação JNDI que eram ignorados no Liberty antes da versão 20.0.0.12. Quando o aplicativo usa esses nomes em consultas diretas de JNDI, em vez de referências de EJB, deve-se usar o Liberty versão 20.0.0.12 ou mais recente ou modificá-lo.
Se você usar referências EJB, a regra Mudança de comportamento em consultas para Enterprise JavaBeans em versões anteriores do Liberty sinalizará quaisquer nomes JNDI que devam ser convertidos no namespace java: quando uma versão do Liberty anterior à 20.0.0.12 estiver sendo usada.
Se você não usar referências EJB e estiver usando uma versão do Liberty mais antiga que a 20.0.0.12, será recomendável usar uma versão mais recente do Liberty ou criar uma referência EJB com o mesmo nome JNDI e configurar a referência EJB binding-name
com o nome JNDI java:[scope]. Se você não incluir
uma referência EJB, deverá varrer seu código Java para uso desses nomes JNDI e
converter o nome de consulta no nome JNDI java:.
O exemplo a seguir cria uma referência EJB para ajudar a migrar quaisquer problemas de consulta quando você não está usando o Liberty versão 20.0.0.12 ou mais recente.
EJB referenciado:
Interface remota:
Os seguintes são exemplos de como declarar uma Referência EJB no Liberty. 1a ou 1b é necessário em conjunto com 2a, 2b, 3a ou 3b para vincular com êxito um EJB e sua referência. Por exemplo, as opções recomendadas são 1a e 2b para uma configuração fácil e bem-sucedida, mas se 1b for declarado em conjunto com 3b, você obterá a mesma funcionalidade que a configuração recomendada.
beanName deve ser adicionado à anotação @EJB. Se estiver usando um ejb-jar.xml ou web.xml, o elemento <ejb-link> deverá ser adicionado ao elemento <ejb-ref> existente. As modificações para 1a e 1b são mostradas aqui:lookup na anotação @EJB. Se estiver usando um arquivo ejb-jar.xml ou web.xml, o elemento <lookup-name> deve ser adicionado ao elemento <ejb-ref> existente. As modificações para 1a e 1b são mostradas aqui:
lookup, lookup-name ou binding-name pode, opcionalmente, ser usado
para referenciar EJBs no mesmo aplicativo. Nesse caso, o valor pode ser configurado para qualquer consulta EJB direta aplicável descrita no final desta página.
A seguir está a consulta de referência EJB final:
Como alternativa, há três opções para consultar um EJB diretamente, não usando uma referência EJB:
Para obter informações adicionais sobre como usar ligações EJB, veja Usando enterprise JavaBeans com interfaces remotas no Liberty e Visão geral de ligações de aplicativos EJB 3.0 e EJB 3.1.