Considerações do Módulo EJB 3.x
Quando usar os módulos Enterprise JavaBeans (EJB) 3.x, lembre-se das seguintes considerações.
A Versão 8.0 Não Suporta os Beans de Entidade 1.x e 2.x Nos Módulos do Nível EJB 3.x
O IBM®WebSphere Application Server Versão 8.0 não suporta o uso dos beans de entidade Bean Managed Persistence (BMP) e Container Managed Persistence (CMP) 1.x e 2.x nos módulos do nível EJB 3.x. Os beans de entidade EJB podem ser usados na V8.0, mas devem ser compactados em um módulo do nível EJB 2.1 ou anterior.
Aplicativos Java™ Platform, Enterprise Edition (Java EE) que são empacotados com beans de entidade EJB nos módulos no nível EJB 3.x falham ao instalar na Versão 8.0.
- O arquivo JAR EJB contém dados de configuração em um arquivo ejb-jar.xml
com uma especificação de cabeçalho EJB 3.0 ou EJB 3.1. Por exemplo:
<ejb-jar id="ejb-jar_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
- O arquivo JAR EJB contém beans com anotações de origem de estilo EJB 3.x que fornecem dados de configuração e não contém um arquivo descritor de implementação ejb-jar.xml.
É necessário recompactar seus módulos EJB 3.x usando módulos EJB 2.x e anterior. Caso contrário, a instalação de qualquer aplicativo que contém beans de entidade falhará.
Anotações
É recomendável usar anotações versus descritores de implementação, ou ambos. Consulte o tópico de anotações de metadados EJB 3.x para obter informações adicionais sobre as anotações.
Módulo EJB
O WebSphere Application Server Versão 8.0 suporta arquivos Java archive (JAR) do módulo EJB com um descritor de implementação ejb-jar.xml declarado no nível 1.1, 2.0, 2.1, 3.0 ou 3.1 ou sem descritor de implementação ejb-jar.xml presente. Se nenhum descritor de implementação estiver presente, presume-se que o módulo EJB esteja no nível 3.0 ou superior.
Os módulos EJB que contêm beans EJB 3.x devem ser declarados para estarem no nível do EJB 3.0 ou EJB 3.1. Isto pode ser feito configurando o nível do descritor de implementação ejb-jar.xml como 3.0 ou 3.1 ou assegurando que o módulo não contém um descritor de implementação ejb-jar.xml. Se o nível do módulo for 2.1 ou anterior, nenhuma função específica do EJB 3.x, como varredura de anotação ou injeção de recursos, será executada.
Os beans de entidade não são suportados nos módulos do nível EJB 3.x. Coloque todos os beans de entidade nos módulos EJB no nível 2.1 ou anterior.
Se desejar compactar um módulo do EJB 3.x com um descritor de implementação, há várias maneiras de se fazer isso. Compacte um módulo do EJB 3.x exclusivamente com beans de sessão e acionados por mensagem no estilo do EJB 3.x; exclusivamente com beans de sessão e acionados por mensagem no estilo do EJB 2.1 ou com uma combinação dos beans no estilo do 2.1 e 3.x. O descritor de implementação XML deve ser um descritor de implementação de Versão 3.0 ou 3.1. É necessário compactar os beans de entidade 2.1 em módulos com descritores de implementação 2.1. Os módulos EJB que contiverem beans EJB 3.x devem estar no nível de especificação EJB 3.0 ou EJB 3.1 quando executar no produto. Prepare o módulo EJB para suportar beans EJB 3.x, configurando o nível do descritor de implementação ejb-jar.xml como 3.0 ou 3.1 ou você pode certificar-se que o módulo não contém um descritor de implementação ejb-jar.xml. Se o nível do módulo for EJB 2.1 ou anterior, nenhuma função do EJB 3.x, incluindo varredura de anotação ou injeção de recursos, será executada no tempo de execução.
Módulo do Cliente do Aplicativo Java EE
O produto fornece suporte para módulos de aplicativo cliente Java EE. Além disso, ele suportará injeção de referências EJB nos componentes de clientes se ela for definida por meio de anotação @EJB.
Definindo uma referência ejb-ref para uma interface de negócios EJB 3.x a partir de um descritor de componente do cliente Java EE
É possível definir uma ejb-ref a partir de um descritor application-client.xml que aponta para uma interface de negócios EJB 3.x. A interfaces de negócios do EJB 3.x são acessadas diretamente se o uso de um início, além disso o elemento ejb-ref em Java EE requer que um tipo de interface inicial seja especificado. Portanto, você deve incluir a sub-rotina <home></home> na definição ejb-ref, mas especificar um valor nulo, conforme mostrado no exemplo. Para o valor da sub-rotina <remote>, especifique o nome de classe da interface de negócios do EJB 3.x. Por fim, quando você configura o valor de ligação, seja durante a instalação do aplicativo ou por meio do conjunto de ferramentas, especifique o local no qual a interface de negócios EJB 3.x foi ligada.
<ejb-ref id="EJBRef_1">
<ejb-ref-name>java_comp-env_name_of_ref</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home></home>
<remote>com.ejbs.business.interface.class.name</remote>
</ejb-ref>
A seção correspondente do arquivo ibm-application-client-bnd.xmi
é semelhante à seguinte amostra de código. Um padrão de ligação EJB padrão é usado aqui; as convenções
de ligação EJB padrão são descritas no tópico Suporte de Ligação de Aplicativos EJB
3.x. <ejbRefBindings xmi:id="EjbRefBinding_1"
jndiName=EJB3App/EJB3Mod.jar/MyBean##com.ejbs.business.interface.class.name">
<bindingEjbRef href="application-client.xml#EjbRef_1"/>
</ejbRefBindings>