Eclipse + JNDI

2 respostas
P

Olá pessoal, beleza?
:!:
seguinte…estava faznedo uma appzinha de teste com o eclipse utilizando um session bean stateless e um entity bean CMP…para gravar alguns dados no banco(mysql)…

no inicia a aplicação não rodava… o compilador em tempo de execução acusava que não conseguia encontrar a referencia local (LocalHome) so meu enity bean…

Por exemplo…quando criei um entity bean chamado Funcionario…o eclipse…criou para mim um service Locator chamado “FuncionarioUtil”…

e era nessa classe que estava meu problema…

pois quando eu tentava usar esse metodo :

/**
    * Obtém a interface home local a partir do contexto inicial padrão
    * @return Interface Home Local para Funcionario. Busca usando COMP_NAME
    */


   public static operacional.domains.ejbs.entitys.FuncionarioLocalHome getLocalHome() throws NamingException
   {
      // Interfaces Home Locais não devem sofrer um narrow, já que não há RMI involvido.
      if (cachedLocalHome == null) {
         // Obtém o contexto inicial
         InitialContext initialContext = new InitialContext();
         try {
            cachedLocalHome = (operacional.domains.ejbs.entitys.FuncionarioLocalHome) initialContext.lookup(operacional.domains.ejbs.entitys.FuncionarioLocalHome.COMP_NAME);
         } finally {
            initialContext.close();
         }
      }
      return cachedLocalHome;
   }

eu recebia a seguinte exceção :

javax.ejb.EJBException: null; CausedByException is:
ejb not bound

entaum eu troquei a constante utilizada para fazer a pesquisa JNDI…

de operacional.domains.ejbs.entitys.FuncionarioLocalHome.COMP_NAME
para operacional.domains.ejbs.entitys.FuncionarioLocalHome.JNDI_NAME

public static final String COMP_NAME=“java:comp/env/ejb/FuncionarioLocal”;
public static final String JNDI_NAME=“FuncionarioLocal”;

e dai funcionou…

só que apartir do momento que eu mando gerar os beans novamente(Generate)…ou que eu executo o meu script ant…ele volta a constante anterior…

onde esta localizado esta definição…?

porque ele usa a COMP_NAME e não a JNDI_NAME , que é a que fiunciona??

como posso resolver isso…?

Valeu pessoal! :!: :lol: :!:

2 Respostas

TedLoprao

Seguinte. coloca no teu EJB a tag XDoclet:

@ejb.util generate="physical"

Mais ou menos isso, amanhã eu olho se é isso mesmo!!!
Fallow

P

Legal…cara é isso mesmo…deu certinho…e funcionou…ele trocou a opção…para a constante JNDI_NAME…

agora vc pode me explicar porque acontece isso…?e o que foi essa solução…?

eu vou dar uma pesquisada…mas se vc puder deixar sua explicação…eu agradeço…

Valeu!

Criado 18 de novembro de 2003
Ultima resposta 19 de nov. de 2003
Respostas 2
Participantes 2