sistemas distribuídos - comunicação distribuída - ejb (jboss 7)

61
Sistemas Distribuídos Comunicação Distribuída - EJB Prof. Adriano Teixeira de Souza

Upload: adriano-teixeira-de-souza

Post on 06-Jun-2015

3.915 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Sistemas DistribuídosComunicação Distribuída - EJB

Prof. Adriano Teixeira de Souza

Page 2: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Estratégias diferentes que permitem a comunicação entre aplicações distribuídas.

Tipos distintos de comunicação em um sistema distribuído:

◦ Sockets◦ RMI - Remote Method Invocation◦ CORBA – Commom Object Request Broker Architecture◦ EJB – Enterprise Java Bean◦ Web Services

Comunicação Distribuída

Prof. Adriano Teixeira de Souza

Page 3: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Enterprise JavaBeans 3.1 com JPA 2.0

Prof. Adriano Teixeira de Souza

Page 4: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Instalando o JBoss Se utilizar a versão 7.0 do JBoss , não é

requerida uma instalação, basta apenas descompactar o arquivo na sua máquina e adicionar a variável de ambiente JBOSS_HOME;

Prof. Adriano Teixeira de Souza

Page 5: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Configurando as variáveis de ambiente (Windows) Vá em Iniciar -> Painel de controle -> Sistema ->

Avançado ->Variáveis de ambiente; Adicione as variáveis JAVA_HOME e JBOSS_HOME,

com os seguintes valores:◦ JAVA_HOME = “meu caminho do JDK”◦ JBOSS_HOME = “meu caminho do Jboss”

Caso não tenha permissão, “sete” as variáveis em tempo de console (abra uma “console” e digite):◦ SET JAVA_HOME=diretorioJVM◦ SET JBOSS_HOME=diretorio do JBOSS◦ Em seguida, entre na pasta bin e digite RUN.BAT

Prof. Adriano Teixeira de Souza

Page 6: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Plataformas Java

Prof. Adriano Teixeira de Souza

Page 7: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Plataforma JEE (antiga J2EE) JEE: Acrônimo de Java Enterprise Edition Kit

Plataforma Java voltada para aplicações corporativas, no modelo de sistema distribuído.

Voltada para aplicações multi-camadas, baseadas em componentes que são executados em um servidor de aplicações (JBoss, exemplo).

A plataforma Java EE é considerada um padrão de desenvolvimento, pois o fornecedor de software nesta plataforma deve seguir determinadas regras compatíveis com Java EE.

Prof. Adriano Teixeira de Souza

Page 8: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

A plataforma JEE A plataforma J2EE contém uma série de especificações, cada uma

com funcionalidades distintas. Entre elas, tem-se:

◦ EJBs (Enterprise Java Beans), utilizados no desenvolvimento de componentes de software. Eles permitem que o programador se concentre nas necessidades do negócio do cliente, enquanto questões de infra-estrutura, segurança, disponibilidade e escalabilidade são responsabilidade do servidor de aplicações.

◦ JPA (Java Persistence API), é uma API que padroniza o acesso a banco de dados através de mapeamento Objeto/Relacional dos Enterprise Java Beans

◦ JTA (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma aplicação Java.

◦ JDBC (Java Database Connectivity), utilizado no acesso a bancos de dados; ◦ JCA (Java Connector Architecture), é uma API que padroniza a ligação a

aplicações legadas.◦ Servlets e JSP (Java Server Pages), utilizados para o desenvolvimento de

aplicações Web com conteúdo dinâmico. ◦ E outros.

Prof. Adriano Teixeira de Souza

Page 9: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

A plataforma JEE

• Transações gerenciadas• Segurança• Clustering• Escalabilidade• Alta Disponibilidade• Comunicação Assíncrona• Integração com Legado• Persistência• etc…

Prof. Adriano Teixeira de Souza

Page 10: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Conceitos básicos

Page 11: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Entity Beans Representa um objeto de entidade de

negócios que existe no armazenamento persistente (banco de dados, por exemplo)

Classes simplificadas, chamadas “POJOS”, mapeadas com JPA ;

Flexíveis para qualquer banco de dados relacional;

Tão portáveis, que podem ser usados também fora de um servidor de aplicação (aplicação “desktop”);

São agrupados em uma unidade de persistência;

Prof. Adriano Teixeira de Souza

Page 12: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Entity Beans Espelham objetos do mundo real;

Possuem uma chave primária “id”(pode ser uma classe ou um tipo primitivo);

Identificado pela anotação @Entity;

Não necessitam de nenhuma interface;

Gerenciados pelo EntityManager;

Prof. Adriano Teixeira de Souza

Page 13: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Aplicação Exemplo

Sistema de Cadastro de Cliente

Prof. Adriano Teixeira de Souza

Page 14: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

A entidade “Cliente”.

@Entity@Table(name=“cliente”)public class Cliente implements Serializable {

private static final long serialVersionUID = 1L;

@Id@GeneratedValue(strategy=IDENTITY)private int id;

private String nome;

private String cpf;

public Cliente() { }

// get’s e set’s

//equals e hashCode

} // fim da entidade

Prof. Adriano Teixeira de Souza

Page 15: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Anotações @Entity

◦ Indica ao provedor de persistência que a Classe bean será mapeada para uma tabela de banco de dados e gerenciada por um Entity Maganer;

@Table ◦ Informa ao container EJB para qual tabela do banco será mapeada

a classe bean;

@Column ◦ Informa ao container EJB para qual coluna da tabela a propriedade

do bean será mapeada;

@Id◦ Informa que atributo será tratado como chave primária na tabela

de banco de dados.

@GeneratedValue - define que o valor do atributo “id” será gerado automaticamente no momento em que os objetos forem persistidos (inseridos na tabela).

Prof. Adriano Teixeira de Souza

Page 16: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Observações sobre uma classe entidade Implementar a interface java.io.Serializable não é obrigatório.◦ Com “Serializable” é possível usar a mesma classe

tanto para persistência, quanto para transferência de dados (entre sistemas ou camadas).

Assim como todo POJO, as propriedades de um Entity Bean são acessadas através dos métodos get’s e set’s.

Prof. Adriano Teixeira de Souza

Page 17: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Unidade de Persistência Conjunto de todos os entity beans; Quem gerencia é um serviço de

EntityManager; Cada unidade de persistência deve estar

associada a um banco de dados; Todas essas informações estão descritas em

um arquivo chamado persistence.xml Localizado no diretório META-INF da

aplicação A unidade de persistência é identificada pela

marcação:◦ <persistence-unit name=“xxxx”>

Onde “xxxx” é o nome a ser referenciado como a unidade de persisência.

Prof. Adriano Teixeira de Souza

Page 18: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Unidade de PersistênciaO arquivo persistence.xml (definido com o

datasource do banco de dados)

<?xml version="1.0" encoding="UTF-8"?><persistence> <persistence-unit name= “nomeUP” > <jta-data-source>

java:jboss/datasources/TesteSQLiteDS</jta-data-source>

</persistence-unit></persistence>

Prof. Adriano Teixeira de Souza

Page 19: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Unidade de Persistência <persistence-unit

name=“nomeUP”> ◦ Conjunto das classes gerenciadas

por um Entity Manager

<jta-data-source>◦ Define o banco de dados que será

usado para esta implantação.◦ No JBoss deve ser definido em um

arquivo “.xml” chamado standalone.xml.

Prof. Adriano Teixeira de Souza

Page 20: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Session Beans São componentes EJB do lado do servidor que podem ser

acessados utilizando vários protocolos de objetos distribuídos;

Para acessar uma aplicação que foi instalada no servidor (JBoss), a aplicação cliente invoca os métodos do Session Bean.

O Session Bean executa o trabalho para seu cliente, protegendo o cliente da complexidade através da execução de tarefas de negócio dentro do servidor.

Suas atividades são geralmente transitórias (não tem um estado persistente);

Prof. Adriano Teixeira de Souza

Page 21: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Session Beans Stateless:

◦ Não mantém estado;◦ Cada método é completamente independente ;

Stateful:◦ Mantém estado;◦ Não é compartilhado entre clientes;

Todo Session Bean deve implementar uma interface local ou remota.◦ Local – o cliente compartilha a mesma máquina

(processador e memória) que o servidor◦ Remoto – o cliente acessa de forma remota (de outra

máquina), mesmo estando na mesma máquina que o servidor

Prof. Adriano Teixeira de Souza

Page 22: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Aplicação exemplo – Cadastro de Clientes Será criado um “session beans” (componente)

chamado ClienteFacade, que fornecerá todos os serviços/tarefas de um cadastro de clientes:◦ Cadastrar um Cliente ◦ Listar os Clientes cadastrados◦ Localizar um Cliente

E outros que se tornarem necessários.

• Por convenção, todos os componentes “session beans” terão no nome o sufixo “Facade”.

• A classe interface terá o mesmo nome da classe “session beans”, adicionado com o sufixo “Remote” ou “Local”, dependendo do uso.

Prof. Adriano Teixeira de Souza

Page 23: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

O session bean “ClienteFacade”@Stateless (mappedName =" ejb/ClienteBean")@LocalBeanpublic class ClienteFacade implements

ClienteFacadeRemote{ @PersistenceContext

private EntityManager manager; public void cadastraCliente(Cliente cliente) {

manager.persist(cliente); }

public Cliente localizaCliente(int id) {return manager.find(Cliente.class, id);

}}

Prof. Adriano Teixeira de Souza

Page 24: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

O session bean “ClienteFacade” @Stateless:

◦ Mostra que o componente ClienteFacade não mantém o estado (objetos/dados em memória);

@PersistenceContext◦ Obtém o acesso a um serviço EntityManager;

Prof. Adriano Teixeira de Souza

Page 25: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

A interface remota – ClienteFacadeRemote Especifica quais métodos de negócio um

cliente tem permissão para invocar no EJB;

@Remote◦ Instrui o container de que esta é uma interface

remota para o ClienteFacade

Prof. Adriano Teixeira de Souza

Page 26: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

A interface remota - AgenciaEventosRemote@Remotepublic interface ClienteFacadeRemote{ public void cadastraCliente(Cliente cliente); public Cliente localizaCliente(int id);

public List<Cliente> listaClientes();}

Prof. Adriano Teixeira de Souza

Page 27: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Criando um projeto EJB no Eclipse (3.6.x)

Passo-a-passo

Page 28: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo1: Definir o projeto JPA Considere um novo projeto para representar a aplicação

“servidora” do Sistema de Cadastro de Clientes. Crie um projeto do tipo EJB: File – New – Project ... EJB

Em seguida, informe:a) O nome do projetob) O servidor para execuçãoc) A configuração do JPA

Veja a seguir...

Prof. Adriano Teixeira de Souza

Page 29: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo1: Definir o projeto JPA

Prof. Adriano Teixeira de Souza

a) Nome do projeto

b) Servidor para execução

c) Configuração do JPA

d) Pressione Next duas vezes

Page 30: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo1: Definir o projeto JPA

Prof. Adriano Teixeira de Souza

a) Defina a plataformab) Adicione a conexao

c) Selecione o driver

e) Pressione Finish

Page 31: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo1: Definir o projeto JPA

Prof. Adriano Teixeira de Souza

a) Selecione a conexão

b) Marque a opção para listar classes no arquivo persistence.xml

c) Marque a opção para criar o arquivo orm.xml

Page 32: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo1: Definir o projeto JPA Visão do projeto JPA(“AULAJEE6-JPA”), na

perspectiva “Java EE”:

Prof. Adriano Teixeira de Souza

Área (pasta) de código fonte (source)

Page 33: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 2: Construir as Classes Entidades As entidades utilizam anotações presentes na biblioteca do JPA,

Java Persistence API. Considere a entidade Cliente apresentada anteriormente. Crie a classe Cliente.java no pacote modelo conforme figura

abaixo.

Prof. Adriano Teixeira de Souza

Page 34: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

34

Passo 2: Construir as Classes Entidades Após importar as classes, adicione as referências

das entidade no arquivo “persistence.xml”.◦ Use o recurso “Generate Entities from Tables”

Prof. Adriano Teixeira de Souza

Page 35: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 3: Definindo o “data-source”

Adicione o nome da “data-source” (TesteSQLiteDS) no arquivo persistence.xml.◦ Use a tag:

<jta-data-source>java:jboss/datasources/TesteSQLiteDS</jta-data-source>

◦ Ou use o editor (assistente) na aba “Connection”. Informe em JTA_Data Source: java:jboss/datasources/TesteSQLiteDS

Prof. Adriano Teixeira de Souza

Page 36: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

36

“Data-source” no persistence.xml Diferente da configuração em aplicação desktop (console

ou stand-alone), uma aplicação no JBOSS fica responsável pelo acesso aos recursos de banco, que são gerenciados pela JTA – Java Transaction API.

Prof. Adriano Teixeira de Souza

Page 37: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Definição do ‘data-source’ no JBOSS Abra o arquivo “standalone.xml” no diretório “configuration” do

JBOSS contendo o acesso ao banco de dados. O exemplo a seguir, mostra o DS (data-source) TesteSQLiteDS,

que registra esse nome no serviço de diretório JNDI (Java Naming and Directory Interface).

Diretório: \jboss-as-7.1.0.Final\standalone\configuration

Arquivo “standalone.xml”

Prof. Adriano Teixeira de Souza

Page 38: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Data-source “EventoDS” para MySQL

Obs:1. Implantar o driver do MySQL no diretório \jboss-as-7.1.0.Final\modules\org\sqlite\main

Prof. Adriano Teixeira de Souza

Page 39: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 4: Definir o projeto EJB Considere um novo projeto para representar a aplicação

“servidora” do Sistema de Eventos. Crie um projeto do tipo EJB: File – New – Project ... EJB

Em seguida, informe:a) O nome do projetob) A versão do EJB (use a 3.1)

Veja a seguir...

Prof. Adriano Teixeira de Souza

Page 40: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 4: Definir o projeto EJB

a) Nome do projeto

b) Versão do EJB (usar a 3.1)

Prof. Adriano Teixeira de Souza

c) Clique em Next duas vezesd) Marque a opção “Generate ejb-jar.xml deployment descriptor”

Page 41: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 4: Definir o projeto EJB Visão do projeto EJB (“AULAJEE6-EJB”), na

perspectiva “Java EE”:

Prof. Adriano Teixeira de Souza

Área (pasta) de código fonte (source)

Page 42: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

42

Passo 5: Criação de Session beans Nesse passo serão criados o componente

ClienteFacade e sua interface remota ClienteFacade Remote.

No Eclipse, seleciona a pasta de código e escolha a opção New – Session Bean (na perspectiva JEE).

◦ Pode ser também: File - New – EJB – Session Bean

Prof. Adriano Teixeira de Souza

Page 43: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 5: Criação de Session beans Criar o “session bean”: ClienteFacade na pacote “facade”

(dentro da pasta de código ejbModule). Desmarque a opção “Local” e marque “Remote”

◦ Altere o nome da interface remota para façade.ClienteFacade Remote

Prof. Adriano Teixeira de Souza

Page 44: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

44

Código da Classes “AgenciaEvento...”

Prof. Adriano Teixeira de Souza

Page 45: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

45

Código final da classe “ClienteFacade...”

Prof. Adriano Teixeira de Souza

Page 46: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 5:Implantando uma aplicação JavaEE

(usando EJB)“Deploy no Eclipse”

Page 47: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Conceito de Deploy Deployment (implantação) é o conjunto de

atividades que tornam um software, ou componentes de software, pronto para uso.

Durante o deployment, o container EJB lê as configurações contidas em arquivos descritores (deployment descriptor) ou nas annotations (anotações) no código-fonte e prepara um ambiente padronizado para a execução dos beans.

◦ O deployment descriptor especifica quais serviços de infra-estrutura o container EJB proverá aos enterprise beans, desde que o deployment seja feito num container EJB certificado.

◦ No Eclipse, cria-se o descritor através do atalho (sobre o projeto): Java EE Tools – Generate Deployment Descriptor Stub Será criado o arquivo ejb-jar.xml na pasta META-INF (do projeto)

Prof. Adriano Teixeira de Souza

Page 48: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Exportando o projeto EJB em formato JAR Um arquivo “JAR” (Java Archive) é uma forma

conveniente de “empacotar” componentes para uso em deployment

O processo compacta (“zipa”) todas as classes, interfaces e arquivos descritores para um único arquivo JAR

Em seguida esse arquivo deve ser copiado para a pasta “deploy” do JBOSS (ou do servidor de aplicação em uso).

No Eclipse, você utiliza a opção: ◦ File – Export – EJB Jar File

◦ Ou usa o menu de atalho (veja na próxima figura)

Prof. Adriano Teixeira de Souza

Page 49: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Exportando o projeto EJB em formato JAR

Prof. Adriano Teixeira de Souza

Escolha o diretório destino no do Jboss (..\server\default\deploy)

Page 50: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

50

Executando o JBoss Para implantar é necessário iniciar o servidor JBoss

◦ Entre no diretório “bin”, onde está o Jboss instalado◦ Execute o arquivo “run.bat” (na console Windows)◦ Aguarde a carga ....

Prof. Adriano Teixeira de Souza

Page 51: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

O Deploy no JBoss O JBoss exige que você coloque seu projeto

EJB “JAR” em um dirétorio deploy. ◦ O default é a pasta

“\jboss-as-7.1.0.Final\standalone\deployments”

O servidor examina o arquivo JAR em tempo de execução quando o servidor é inicializado para determinar quais containers EJB devem ser criados e acoplados em tempo de execução.◦ Qualquer atualização do “JAR” pode ser feita com o

JBoss “rodando”

Prof. Adriano Teixeira de Souza

Page 52: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Passo 6:Criando um projeto de uma

aplicação cliente

Acessando os componentes EJB remotamente em uma aplicação console.

Page 53: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Testando o acesso aos EJB Com o componente EJB ClienteFacade

implantado, vamos testar o acesso de um cliente remoto (aplicação console)

Para isso devemos criar o cliente que se conecta ao servidor, localiza a interface remota do componente ClienteFacade e interage com ele para criar e selecionar entidades “Cliente” no banco de dados.

Prof. Adriano Teixeira de Souza

Page 54: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Criando a aplicação no Eclipse No Eclipse, crie um nov projeto Java EE, do tipo “Java

Project”.◦ Use a opção File – New Project – JavaEE

Prof. Adriano Teixeira de Souza

Page 55: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Importando o pacote JAR para o projeto. Adicione o JAR criado anteriormente, para manter as

dependências das classes entidades (JPA) e a EJB remoto.

Prof. Adriano Teixeira de Souza

Page 56: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Adicionando referência para o projeto

Prof. Adriano Teixeira de Souza

Page 57: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Adicionando a biblioteca do JBOSS_LIB Adicione a bibliotecas para o cliente do diretório conforme abaixo.

Prof. Adriano Teixeira de Souza

Page 58: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Criando o Cliente

public class Principal {

private static InterfaceRepositorioClientes lookupRemote() throws NamingException {

final Hashtable jndiProperties = new Hashtable();

jndiProperties.put(

Context.URL_PKG_PREFIXES,

"org.jboss.ejb.client.naming");

final Context context = new InitialContext(jndiProperties);

final String appName = "";

final String moduleName = "TesteJPA-EJB";

final String distinctName = "";

final String beanName = ServidorClientes.class.getSimpleName();

final String viewClassName = InterfaceRepositorioClientes.class.getName();

return (InterfaceRepositorioClientes) context.lookup(

"ejb:" + appName + "/" + moduleName + "/"

+ distinctName + "/" + beanName + "!" + viewClassName);

}

Prof. Adriano Teixeira de Souza

Page 59: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Criando o Cliente

public static void main(String[] args) throws NamingException {

try{

// cria um cliente

InterfaceRepositorioClientes repositorioRemotoClientes = lookupRemote();

System.out.println("Efetuado conexao com servidor.");

Cliente cliente = new Cliente();

cliente.setNome("Paulo");

cliente.setCpf("0434567-89");

System.out.println("Gravando novo cliente.");

repositorioRemotoClientes.criarCliente(cliente);

System.out.println("Listando todos clientes.");

List<Cliente> clientes = repositorioRemotoClientes.listarClientes();

for(Cliente c : clientes){

System.out.println("Cliente: "+c.getNome()+" ("+c.getCpf()+")");

}

}catch (Exception e) {

e.printStackTrace();

}

}

}

Prof. Adriano Teixeira de Souza

Page 60: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Executar o cliente Colocar um arquivo jboss-ejb-client.properties no

diretório src, o qual é o diretório base para os arquivos fonte com o conteúdo abaixo.

Prof. Adriano Teixeira de Souza

endpoint.name=client-endpointremote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=falseremote.connections=defaultremote.connection.default.host=127.0.0.1remote.connection.default.port = 4447remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

Executar o programa

Page 61: Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)

Atividade - Final Desenvolver uma aplicação JavaEE para

fornecer o seguinte componente:◦ CadastrarAluno (Aluno a);

Um aluno tem matricula, nome, curso.

◦ Desenvolver uma aplicação console para utilizar o componente CadastraAluno, usando a interface CadastrarAlunoRemote

Prof. Adriano Teixeira de Souza