-
Notifications
You must be signed in to change notification settings - Fork 0
Manual EJB
Erick Souza edited this page Oct 10, 2017
·
3 revisions
- Crie um Enterprise Application Project
- Crie um EJB Project
2.1) Não esqueça de acrescentar o projeto EJB ao EAR
- Crie um Session Bean remoto dentro do módulo EJB
- No ModuloEJBClient edite a interface MeuBeanRemote e acrescente a assinatura:
public String helloWorld();
- 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!";
}
}
- 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);
}
}
- Antes de testar a aplicação, verifique se o Java Build Path do cliente possui as seguintes bibliotecas