Eclipse + JNDI

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 :

[quote]javax.ejb.EJBException: null; CausedByException is:
ejb not bound[/quote]

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

[quote] 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”;

[/quote]

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: :!:

Seguinte. coloca no teu EJB a tag XDoclet:

@ejb.util generate="physical"

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

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!