segunda-feira, 8 de dezembro de 2008

Portlets chamando EJB

A arquitetura JEE (Java Enterprise Edition) prevê o uso de EJB's para o tratamento de lógicas de negócio e lógica de persistência.

Os portles, por serem especializados na camada de apresentação podem fazer uso deste tipo de componente para apresentação dos dados.

Neste panorama uma arquitetura recomendada é usar EJB's em uma JVM diferente da JVM utilizada para rodar os portlets. Para implementar esta arquitetura é necessário realizar uma configuração no Websphere para impedir que os CSIv2 enviem credencias de stub de cliente. O procedimento completo para realizar esta configuração pode ser visto no link abaixo:

http://www-01.ibm.com/support/docview.wss?uid=swg21218843

O código para chamar o EJB no portlet está abaixo:

Hashtable env= new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL, "iiop://servidorEJB:10031");

InitialContext context= new InitialContext(env);
String jndiName= "ejb/aplicacao/ComponentFacade";

Object objRef = context.lookup(jndiName);
ComponentFacadeHome ejbHome= (ComponentFacadeHome) PortableRemoteObject.narrow(objRef, ComponentFacadeHome.class);
ComponenttFacade remote= (ComponentFacade)ejbHome.create();

ParametersTO netParameter = remote.getVerDados(valor);

Nenhum comentário: