aplicaÇÃo j2ee – exemplo prÁtico guilherme amaral avelino

13
APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

Upload: nina-cantara

Post on 07-Apr-2016

235 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

APLICAÇÃO J2EE – EXEMPLO PRÁTICOGuilherme Amaral Avelino

Page 2: 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. Construção do aplicativo J2EE: ConverterApp2. Construção do enterprise bean: ConverterBean3. Construção do cliente de aplicativo: ConverterClient4. Construção e empacotamento de um cliente Web5. Implantação do ConverterApp no servidor6. Execução dos clientes

Page 3: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

Construção do ConverterApp Deve se criar uma nova aplicação J2EE e

gerar seu pacote de implantação (ConverterApp.ear)1. Abra a ferramenta de implantação deploytool

a. %J2EE_HOME%\bin\deploytool.exe2. Selecione File → New → Application3. Selecione o local para a criação da aplicação4. Em File Name, entre ConverterApp.exe5. New Aplication6. OK

Page 4: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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. Criar a pasta /src para armazenamento das

classes e interfaces do aplicativo2. Codificar a classe e as interfaces do bean3. Compilar o código fonte com o asant4. Empacotar o Ejb em um arquivo JAR EJB e

adicioná-lo a aplicação

Page 5: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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;}

Page 6: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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;}

Page 7: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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); }

Page 8: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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) {}}

Page 9: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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

Page 10: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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 JAR1. Contém as classes do cliente e seu descritor de

implantação2. Contém as classes stubs requeridas pelo

programa do cliente em tempo de execução para acessar os ejbs que rodam no servidor

a. É criado pelo deploytool quando a aplicação é implantada

Page 11: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

Construindo o cliente de aplicativo Codificar o cliente de aplicativo requer:

1. Localizar a interface home2. Criar uma instância do ejb3. Chamar os métodos de negócio

Page 12: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

Construindo o cliente de aplicativo Passos para localização da interface home de um

EJB1. Crie o contexto de atribuição de nome inicial2. Obtenha o contexto de nomenclatura do ambiente do

cliente de aplicação3. Obtenha o objeto ligado ao nome ejb/SimpleConverter4. Estreite a referência para um objeto ConverterHome

Criando uma instância do ejbConverter currencyConverter = home.Create

//código localização da interface homeContext 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();

Page 13: APLICAÇÃO J2EE – EXEMPLO PRÁTICO Guilherme Amaral Avelino

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(); } }}