Olá Pessoal,
Com a chegada do EJB3, ficou bem mais simples, desenvolver aplicações que usam Session Bean e Entity, devido a utilização das Annotations, evitando de ficar configurando arquivos XMLs. Entretanto, existe várias aplicações no mercado que utilizam o uso de EJB2, por este motivo, resolvi criar este post, que tem como objetivo, mostrar, como que desenvolve uma aplicação em EJB2 que servirá como nosso modelo, e para utilizar este serviço, iremos usar 2 maneiras, uma usando Servlet e a outra Swing para acessar o EJB2.
Este post terá 2 partes, essa primeira, será o desenvolvimento da camada EJB2 e a segunda parte, criaremos um Client Servlet e Swing. Para o desenvolvimento do projeto, irei utilizar Java 1.6, Eclipse e o JBoss 4.
1. Passo: Vejamos a estrutura da camada de EJB:
2. Passo: Crie um projeto chamado ExemploEJB2 do tipo EJB no Eclipse, neste projeto vamos criar duas Interfaces (Remote e Home) e um SessionBean.
Primeiro criamos a Interface Remote e declaramos nosso método de serviço, neste exemplo é bem simples, teremos um método para mostrar o nome de uma Pessoa.
package com.blogpost.jabesfelipe.service;
import java.rmi.RemoteException;import javax.ejb.EJBObject;
public interface Hello extends EJBObject {
public String showName(String name) throws RemoteException;
}Hello.java
Criamos a Interface Home:
package com.blogpost.jabesfelipe.service;
import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBHome
public interface HelloHome extends EJBHome {
public Hello create() throws RemoteException, CreateException;
}HelloHome.java
Agora criamos nosso SessionBean e iremos implementar nosso método que foi declarado na Interface:
package com.blogpost.jabesfelipe.service;
import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBException;import javax.ejb.SessionBean;import javax.ejb.SessionContext;
public class HelloBean implements SessionBean {
public String showName(String name) { return "Meu nome é " + name + "!"; }
public void ejbCreate() throws CreateException { System.out.println("Bean criado"); }
@Override public void ejbActivate() throws EJBException, RemoteException { System.out.println("Bean ativado"); }
@Override public void ejbPassivate() throws EJBException, RemoteException { System.out.println("Bean desativado"); }
@Override public void ejbRemove() throws EJBException, RemoteException { System.out.println("Bean removido"); }
@Override public void setSessionContext(SessionContext arg0) throws EJBException, RemoteException {}
}HelloBean.java
3. Passo: Agora vamos configurar (name, state, etc...) do EJB no arquivo ejb-jar.xml que fica dentro da pasta META-INF.
O arquivo vai ficar conforme o modelo abaixo:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"><ejb-jar id="ejb-jar_ID"> <display-name>ExemploEJB2</display-name>
<enterprise-beans> <session> <display-name>HelloBean</display-name> <ejb-name>HelloBean</ejb-name> <home>com.blogpost.jabesfelipe.service.HelloHome</home> <remote>com.blogpost.jabesfelipe.service.Hello</remote> <ejb-class>com.blogpost.jabesfelipe.service.HelloBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> </session> </enterprise-beans>
</ejb-jar>ejb-jar.xml
4. Passo: Vamos criar um arquivo jboss.xml dentra da pasta META-INF, e neste arquivo definimos o nome da JNDI que irá acessar o EJB.
<?xml version='1.0' encoding='UTF-8' ?><jboss>
<enterprise-beans> <session> <ejb-name>HelloBean</ejb-name> <jndi-name>HelloBean</jndi-name> </session> </enterprise-beans>
</jboss>jboss.xml
5. Passo: O nosso EJB está pronto, agora crie um projeto chamado ExemploEJB2-ear do tipo EAR, e vamos configurar o módulo EJB no arquivo application.xml que fica dentro da pasta META-INF.
<?xml version="1.0" encoding="UTF-8"?><application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" id="Application_ID" version="5"> <display-name>ExemploEJB2-ear</display-name> <module> <ejb>ExemploEJB2.jar</ejb> </module></application>Bom galera, nossa camada de EJB, está pronta, e na próxima parte do tutorial, vamos testa-lá, usando Servlet e Swing.
Qualquer dúvida, crítica ou segestão, fico à disposição.
02:03
Jabes Felipe

Posted in: 

0 comentários:
Postar um comentário