A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Marco A. S. Reis http://marcoreis.net EJB 3.0 - Acesso Remoto Marco A. S. Reis http://marcoreis.net.

Apresentações semelhantes


Apresentação em tema: "Marco A. S. Reis http://marcoreis.net EJB 3.0 - Acesso Remoto Marco A. S. Reis http://marcoreis.net."— Transcrição da apresentação:

1 Marco A. S. Reis http://marcoreis.net
EJB Acesso Remoto Marco A. S. Reis

2 Serialização Recurso disponível desde a primeira versão do Java, permite que se salve o estado de um objeto em uma stream de dados. Também permite que se recupere os dados da stream de volta em um objeto. Para trocar objetos entre JVM's diferentes, é obrigatório implementar Serializable. É assim que o RMI trabalha, tranferindo objetos entre diferentes máquinas.

3 Interface Remota Um session bean pode ser local ou remoto, dependendo do uso que se pretende. Se a aplicação rodar em apenas um servidor, podemos implementar apenas as interfaces locais. Caso o sistema seja distribuído, e há diversas justificativas para isso, as interfaces devem ser remotas e os objetos envolvidos devem obrigatoriamente ser Serializable.

4 AppClient Para acessar um componente remoto vamos criar uma aplicação cliente conforme o exemplo.

5 Library Adicione a library do JBoss, conforme o modelo.

6 Cliente Para acessar remotamente a aplicação cliente precisa das interfaces remotas, bem como das classes de entidades envolvidas. Há várias formas de conseguir, uma delas é a função Export.

7 Especificação Selecione as classes de entidade mais a fachada remota.
Indique o caminho da lib do novo projeto como destino das classes.

8 Serviços Remotos Adicione a biblioteca recém-criada no classpath da aplicação.

9 AppClient O projeto, ao final, deve conter os arquivos ao lado.

10 jndi.properties java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=jnp:// :1099

11 JBoss Para iniciar o JBoss é importante observar os parâmetros de bind, habilitando o servidor a receber solicitações remotas: run.bat (.sh) -c default -b ou run.bat (.sh) -c default –host= ou run.bat (.sh) -c default - Djava.bind.address=

12 ListaRecursosRemotos
package org.financeiro.remote; import javax.naming.*; public class ListaRecursosRemotos { public static void main(String[] args) { try { Context ctx = new InitialContext(); NamingEnumeration<NameClassPair> lista = ctx.list(""); while (lista.hasMore()) { NameClassPair proximo = lista.next(); System.out.println(proximo); } } catch (Exception e) {

13 ConsultaCorrentistasRemotos
package org.financeiro.remote; import java.util.*; import javax.naming.*; import org.financeiro.entidades.*; import org.financeiro.negocio.*; public class ConsultaCorrentistasRemotos { public static void main(String[] args) { try { Context ctx = new InitialContext(); Object proxy = ctx.lookup("FachadaCorrentista/remote"); IFachadaCorrentistaRemote fachada = (IFachadaCorrentistaRemote) proxy; // System.out.println("Lista de correntistas"); List<Correntista> listaDeCorrentistas = fachada.consultaTodos(); for (Correntista c : listaDeCorrentistas) { System.out.println(c.getId() + " - " + c.getNome()); } } catch (Exception e) { e.printStackTrace();

14 InsereCorrentistaRemoto
package org.financeiro.remote; import java.util.*; import javax.naming.*; import javax.swing.*; import org.financeiro.entidades.*; import org.financeiro.negocio.*; public class InsereCorrentistaRemoto { public static void main(String[] args) { try { Context ctx = new InitialContext(); Object proxy = ctx.lookup("FachadaCorrentista/remote"); IFachadaCorrentistaRemote fachada = (IFachadaCorrentistaRemote) proxy; // Correntista correntista = new Correntista(); correntista.setNome(JOptionPane.showInputDialog("Nome do Correntista")); correntista.setDataDeNascimento(new GregorianCalendar(1979, 4, 6) .getTime()); correntista.setTelefone(" "); fachada.inserir(correntista); JOptionPane.showMessageDialog(null, "Correntista inserido com sucesso"); } catch (Exception e) { e.printStackTrace(); }

15 Monitoração A versão 5.0 do Java trouxe uma API completa para monitoração: JMX (Java Management Extension).

16 JMX Agent View Para acessar a ferramenta de monitoração, acesse o endereço:

17 EJB's instalados Clique na opção jboss.j2ee, que irá listar todos os beans instalados no servidor.

18 FachadaCorrentista Verifique no InvokeStats as chamadas de cada método da fachada.


Carregar ppt "Marco A. S. Reis http://marcoreis.net EJB 3.0 - Acesso Remoto Marco A. S. Reis http://marcoreis.net."

Apresentações semelhantes


Anúncios Google