Skip to content

Manual EJB

Erick Souza edited this page Oct 10, 2017 · 3 revisions

Manual: criando uma aplicação com EJB

  1. Crie um Enterprise Application Project

  1. Crie um EJB Project

2.1) Não esqueça de acrescentar o projeto EJB ao EAR

  1. Crie um Session Bean remoto dentro do módulo EJB

  1. No ModuloEJBClient edite a interface MeuBeanRemote e acrescente a assinatura:
public String helloWorld();
  1. Acrescente a implementação do método na classe MeuBean
package br.unifor.bean;
import javax.ejb.Stateless;

@Stateless
public class MeuBean implements MeuBeanRemote {

    @Override
    public String helloWorld() {        
        return "Ola mundo!";
    }
}
  1. Crie uma classe no cliente para acessar o EJB:
package br.unifor.principal;

import javax.naming.NamingException;
import br.unifor.bean.MeuBeanRemote;
import br.unifor.util.JndiUtils;

public class Principal {

    public static void main(String[] args) { 

        try {
            MeuBeanRemote bean = JndiUtils.lookup("ProjetoEAR/ModuloEJB/MeuBean!br.unifor.bean.MeuBeanRemote");

            System.out.println(bean.helloWorld());
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

6.1) A classe br.unifor.util.JndiUtils contém um método que realiza as configurações de lookup para o JBoss:

package br.unifor.util;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class JndiUtils {
    
    @SuppressWarnings("unchecked")
    public static <T> T lookup(String name) throws NamingException {
        @SuppressWarnings("rawtypes")
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.remote.client.InitialContextFactory");
        env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
        env.put(Context.PROVIDER_URL,"http-remoting://localhost:8080");
        env.put(Context.SECURITY_PRINCIPAL, "user");  
        env.put(Context.SECURITY_CREDENTIALS, "treinamento");
        env.put("jboss.naming.client.ejb.context", true);
        Context context = new InitialContext(env);
        
        return (T) context.lookup(name);
    }
}
  1. Antes de testar a aplicação, verifique se o Java Build Path do cliente possui as seguintes bibliotecas

Clone this wiki locally