Preciso chamar local bean de um remote stateless bean

2 respostas
J

Oi pessoALL,

Não estou conseguindo no Weblogic 9.2, estou ganhando a seguinte exception:

javax.naming.NameNotFoundException: While trying to lookup 'java:comp.env/ejb/localFake' didn't find subcontext 'java:comp'. Resolved ''; remaining name 'java:comp/env/ejb/localFake'

seguem os arquivos:

ejb-jar.xml:

<enterprise-beans>
      <session >
         <description><![CDATA[Description for SigemFacade]]></description>
         <display-name>Name for SigemFacade</display-name>
         <ejb-name>SigemFacade</ejb-name>
         <home>br.com.SigemFacadeHome</home>
         <remote>br.com.SigemFacade</remote>
         <ejb-class>br.com.SigemFacadeBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>
      </session>

      <session >
         <description><![CDATA[]]></description>
         <ejb-name>Fake</ejb-name>
         <local-home>br.com.FakeLocalHome</local-home>
         <local>br.com.Fake</local>
         <ejb-class>br.com.FakeBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
      </session>

weblogic-ejb-jar.xml

<weblogic-enterprise-bean>
      <ejb-name>SigemFacade</ejb-name>
      <stateless-session-descriptor></stateless-session-descriptor>
      <reference-descriptor></reference-descriptor>
      <jndi-name>SigemFacade</jndi-name>
   </weblogic-enterprise-bean>

   <weblogic-enterprise-bean>
      <ejb-name>Fake</ejb-name>
      <stateless-session-descriptor></stateless-session-descriptor>
      <reference-descriptor></reference-descriptor>
      <local-jndi-name>localFake</local-jndi-name>
   </weblogic-enterprise-bean>

a chamada:
// inicializa o initialContext ctx
EJBLocalHome objetoEJBLocalHome = (EJBLocalHome) ctx.lookup("java:comp/env/ejb/localFake");

Abraços, e valeu qualquer ajuda

2 Respostas

M

Opa,

você viu no prompt se ele bindou seu Bean? Bom se bindou acho que sua chamada não está legal, mas para melhorar ela use este padrão:

http://java.sun.com/blueprints/patterns/ServiceLocator.html

:okok:

J

O pattern que estou usando é o service locator, tanto que o façade é localizado através de business delegate e funciona corretamente, o problema é a chamada o bean local que estou ganhando aquela exception. Vou continuar pesquisando, mas qualquer ajuda é bem vinda.

Abraços.

Júlio.

Criado 14 de setembro de 2006
Ultima resposta 15 de set. de 2006
Respostas 2
Participantes 2