UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares [email protected] Aula 7 – Criando um ejb de sessão sem estado Instalando o GlassFish Baixe a versão .zip do GlassFish Server Open Source Edition 3 no site: http://glassfish.java.net/public/downloadsindex.html#top Basta descompactar o GlassFish e pronto! Adicionando o GlassFish no Netbeans Adicionando o GlassFish no Netbeans Forneça o caminho do Glassfish descompactado ... Adicionando o Glassfish no Netbeans Escolha o domínio, no caso Domain1, e clique em Finalizar. GlassFish O GlassFish está instalado Criando um projeto EJB Crie um novo projeto … JavaEE … Módulo EJB Criando um projeto EJB Forneça o nome do projeto, local e pasta do projeto … Criando um projeto EJB Escolha o servidor de aplicação de destino, versão do JavaEE e clique em finalizar. Projeto criado Criando o EJB Menu Arquivo → Novo Arquivo … JavaEE → Bean de Sessão ... Criando o EJB Forneça o nome do EJB e o pacote, escolha Bean de Sessão sem estado e selecione as interfaces local e remota. EJB Criado Criando um método de negócio... Clique com o botão direito e selecione inserir código, ou pressione alt + insert … Selecione adicionar método de negócio ... Criando um método de negócio... Informe o nome do método, tipo de retorno, lista de parâmetros e qual interface deverá implementar ... Codificando o método de negócio @Override public String enviarMensagem(String mensagem) { System.err.println(mensagem); return "Mensagem enviada com sucesso!"; } Construindo e implantando Clique com o botão direito no projeto e selecione Construir Clique novamente com o botão direito e selecione Implantar Criando um cliente para o EJB Novo projeto … Java → Aplicativo Java … Forneça o nome do aplicativo e local do projeto Adicione o jar gf-client.jar ao projeto Adicione o projeto do EJB como biblioteca Criando um contexto inicial ... Método 1: Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost"); props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); InitialContext ic = new InitialContext(props); Criando um contexto inicial ... Método 2: Crie um arquivo jndi.properties contendo: java.naming.factory.initial = com.sun.enterprise.naming.SerialInitContextFactory java.naming.factory.url.pkgs = com.sun.enterprise.naming java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl org.omg.CORBA.ORBInitialHost = localhost org.omg.CORBA.ORBInitialPort = 3700 A JVM carrega as propriedades. Crie o contexto: InitialContext ctx = new InitialContext(); O exemplo completo package javaapplication14; import ejbexemplo.NewSessionBeanRemote; import java.io.IOException; import javax.naming.InitialContext; import javax.naming.NamingException; public class Main { public static void main(String[] args) throws IOException, NamingException { InitialContext ctx = new InitialContext(); NewSessionBeanRemote sb = (NewSessionBeanRemote) ctx.lookup("ejbexemplo.NewSessionBeanRemote"); String resposta = sb.enviarMensagem("Olá Mundo!"); System.out.println(resposta); } } Resultados Cliente Servidor