Utilizando EJB2 com Client Servlet e Swing (Parte 1)
Autor: Jabes Felipe | Publicado: 2011-04-17T02:03:00-07:00

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.javaCriamos a Interface Home:package com.blogpost.jabesfelipe.service;import java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.EJBHomepublic interface HelloHome extends EJBHome { public Hello create() throws RemoteException, CreateException;}HelloHome.javaAgora 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.java3. 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:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"&gt;&lt;ejb-jar id="ejb-jar_ID"&gt; &lt;display-name&gt;ExemploEJB2&lt;/display-name&gt; &lt;enterprise-beans&gt;  &lt;session&gt;   &lt;display-name&gt;HelloBean&lt;/display-name&gt;   &lt;ejb-name&gt;HelloBean&lt;/ejb-name&gt;   &lt;home&gt;com.blogpost.jabesfelipe.service.HelloHome&lt;/home&gt;   &lt;remote&gt;com.blogpost.jabesfelipe.service.Hello&lt;/remote&gt;   &lt;ejb-class&gt;com.blogpost.jabesfelipe.service.HelloBean&lt;/ejb-class&gt;   &lt;session-type&gt;Stateless&lt;/session-type&gt;   &lt;transaction-type&gt;Bean&lt;/transaction-type&gt;  &lt;/session&gt; &lt;/enterprise-beans&gt;&lt;/ejb-jar&gt;ejb-jar.xml4. 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.&lt;?xml version='1.0' encoding='UTF-8' ?&gt;&lt;jboss&gt; &lt;enterprise-beans&gt;  &lt;session&gt;   &lt;ejb-name&gt;HelloBean&lt;/ejb-name&gt;   &lt;jndi-name&gt;HelloBean&lt;/jndi-name&gt;  &lt;/session&gt; &lt;/enterprise-beans&gt;&lt;/jboss&gt;jboss.xml5. 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.&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;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"&gt;  &lt;display-name&gt;ExemploEJB2-ear&lt;/display-name&gt;  &lt;module&gt;    &lt;ejb&gt;ExemploEJB2.jar&lt;/ejb&gt;  &lt;/module&gt;&lt;/application&gt;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.