130 likes | 226 Vues
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 Construção do aplicativo J2EE: ConverterApp Construção do enterprise bean: ConverterBean
E N D
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 • 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 • %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: • 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 • É criado pelo deploytool quando a aplicação é implantada
Construindo o cliente de aplicativo • Codificar o cliente de aplicativo requer: • 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 • 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 Converter currencyConverter = home.Create //código localização da interface home Context initial = new InitialContext(); Context myEnv = (Context) initial.lookup("java:comp/env"); Object objref = myEnv.lookup("ejb/SimpleConverter"); ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class); Converter currencyConverter = home.create(); //código criação de uma instância do ejb 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(); } } }