APLICAÇÃO J2EE –
EXEMPLO PRÁTICO
Guilherme Amaral Avelino
ConverterApp


Criação de uma aplicação J2EE simples, que
realiza conversões monetárias
Os passos para a construção da aplicação são
1.
2.
3.
4.
5.
6.
Construção do aplicativo J2EE: ConverterApp
Construção do enterprise bean: ConverterBean
Construção do cliente de aplicativo: ConverterClient
Construção e empacotamento de um cliente Web
Implantação do ConverterApp no servidor
Execução dos clientes
Construção do ConverterApp

Deve se criar uma nova aplicação J2EE e gerar seu
pacote de implantação (ConverterApp.ear)
Abra a ferramenta de implantação deploytool
1.
a.
2.
3.
4.
5.
6.
%J2EE_HOME%\bin\deploytool.exe
Selecione File → New → Application
Selecione o local para a criação da aplicação
Em File Name, entre ConverterApp.exe
New Aplication
OK
Construção do Enterprise Bean



Deve armazenar a lógica de negócio da aplicação
Será representado por um ejb de sessão stateless
Passos:
1.
2.
3.
4.
Criar a pasta /src para armazenamento das classes
e interfaces do aplicativo
Codificar a classe e as interfaces do bean
Compilar o código fonte com o asant
Empacotar o Ejb em um arquivo JAR EJB e adicionálo a aplicação
Construção do Enterprise Bean

Codificando a interface remota

Define os métodos de negócio que um cliente pode chamar
package converter;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
import java.math.*;
public interface Converter extends EJBObject {
public BigDecimal dollarToYen(BigDecimal dollars) throws
RemoteException;
public BigDecimal yenToEuro(BigDecimal yen) throws
RemoteException;
}
Construção do Enterprise Bean

Codificando a interface home

Define os métodos de permitem um cliente criar, encontrar,
ou remover, um enterprise bean
package converter;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface ConverterHome extends EJBHome {
Converter create() throws RemoteException, CreateException;
}
Construção do Enterprise Bean

Codificando a classe enterprise bean

Implementa os métodos de negócio definidos pela interface
remota
package converter;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import java.math.*;
public class ConverterBean implements SessionBean {
BigDecimal yenRate = new BigDecimal("121.6000");
BigDecimal euroRate = new BigDecimal("0.0077");
public BigDecimal dollarToYen(BigDecimal dollars) {
BigDecimal result = dollars.multiply(yenRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
Construção do Enterprise Bean
public BigDecimal yenToEuro(BigDecimal yen) {
BigDecimal result = yen.multiply(euroRate);
return result.setScale(2, BigDecimal.ROUND_UP);
}
public ConverterBean() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
Construção do Enterprise Bean

Empacotando o EJB
 Com
auxilio da deploytool os seguintes passos devem
ser realizado:
 Criação
do descritor de implantação do bean
 Empacotamento do descritor e das classes do bean em um
arquivo EJB EAR (ConverterJAR )
 Inserção do arquivo JAR EJB no arquivo ConverterApp.ejb
Construindo o cliente de aplicativo


Programa escrito em Java que em tempo de
execução acessa um serviço fornecido por um que
está ejb executando em um servidor de aplicação
Requer 2 arquivos JAR
Contém as classes do cliente e seu descritor de
implantação
Contém as classes stubs requeridas pelo programa
do cliente em tempo de execução para acessar os
ejbs que rodam no servidor
1.
2.
a.
É criado pelo deploytool quando a aplicação é
implantada
Construindo o cliente de aplicativo

Codificar o cliente de aplicativo requer:
1.
2.
3.
Localizar a interface home
Criar uma instância do ejb
Chamar os métodos de negócio
Construindo o cliente de aplicativo

Passos para localização da interface home de um EJB
1.
2.
3.
4.
Crie o contexto de atribuição de nome inicial
Obtenha o contexto de nomenclatura do ambiente do cliente
de aplicação
Obtenha o objeto ligado ao nome ejb/SimpleConverter
Estreite a referência para um objeto ConverterHome
Criando
uma instância
do ejb
//código localização
da interface
home
ContextcurrencyConverter
initial = new InitialContext();
Converter
= home.Create

Context myEnv = (Context) initial.lookup("java:comp/env");
Object objref = myEnv.lookup("ejb/SimpleConverter");
ConverterHome home =
(ConverterHome) PortableRemoteObject.narrow(objref,
//código criação de uma instância do ejb
ConverterHome.class);
Converter currencyConverter = home.create();
Converter currencyConverter = home.create();
import converter.Converter;
import converter.ConverterHome;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.math.BigDecimal;
public class ConverterClient {
public static void main(String[] args) {
try {
//código localização da interface home
//código criação de uma instância do ejb
BigDecimal param = new BigDecimal("100.00");
BigDecimal amount = currencyConverter.dollarToYen(param);
System.out.println(amount);
amount = currencyConverter.yenToEuro(param);
System.out.println(amount);
System.exit(0);
} catch (Exception ex) {
System.err.println("Caught an unexpected exception!");
ex.printStackTrace();
}
}
}
Download

Enterprise Java Beans