J'ai une application EJB2 fonctionnant sur JBOSS 4.2.3GA et la recherche fonctionne correctement avec: java:comp/env/ejb/MyEJB
.Java EJB2 JNDI Look Up Echec lors de la migration de Jboss 4 vers Jboss 6
Lors du passage à JBOSS AS 6.1.Final, il s'est soudainement rompu avec l'exception NameNotFoundException. JNDI View montre que l'EJB est lié à l'arborescence correcte. Mettre un point d'arrêt avant la recherche j'ai pu regarder et confirmer qu'il est lié. En utilisant context.list("java:comp/env/ejb")
, j'ai été capable de voir MyEJB dans l'itérateur. L'utilisation de context.lookup("java:comp/env/ejb")
fonctionne également. Cependant context.lookup("java:comp/env/ejb/MyEJB")
montre NamingException sur la fenêtre de surveillance (et NameNotFoundException lors de l'exécution du code réel).
Y at-il quelque chose de changé que je ne connais pas? Il est très difficile de trouver des informations sur ce sujet EJB et toute information que je trouve suggérer soit confirme ce que je fais bien ou dit d'utiliser ejb/MyEJB
qui ne fonctionne pas du tout.
Merci d'avance. J'apprécie ton aide.
ejb-jar.xml:
<session>
<ejb-name>AdminSessionEJB</ejb-name>
<local-home>com.admin.ejb.business.AdminSessionHome</local-home>
<local>com.admin.ejb.business.AdminSession</local>
<ejb-class>com.admin.ejb.business.AdminSessionEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>ejb/UserEJB</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.admin.ejb.entity.UserHome</local-home>
<local>com.admin.ejb.entity.User</local>
<ejb-link>UserEJB</ejb-link>
</ejb-local-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/UniqueKeyEJB</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.framework.ejb.entity.UniqueKeyHome</local-home>
<local>com.framework.ejb.entity.UniqueKey</local>
<ejb-link>UniqueKeyEJB</ejb-link>
</ejb-local-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/UserGroupEJB</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.admin.ejb.entity.UserGroupHome</local-home>
<local>com.admin.ejb.entity.UserGroup</local>
<ejb-link>UserGroupEJB</ejb-link>
</ejb-local-ref>
</session>
jboss.xml:
<enterprise-beans>
<entity>
<ejb-name>UserEJB</ejb-name>
<local-jndi-name>ejb/UserHome</local-jndi-name>
<read-only>false</read-only>
<configuration-name>UserEJB Container Configuration</configuration-name>
<ejb-local-ref>
<ejb-ref-name>ejb/UserGroupEJB</ejb-ref-name>
<local-jndi-name>ejb/UserGroupHome</local-jndi-name>
</ejb-local-ref>
</entity>
</enterprise-beans>
S'il vous plaît montrer la déclaration XML pour la déclaration d'EJB à partir de votre fichier ejb-jar.xml et le XML correspondant de votre fichier jboss.xml. –
J'ai posté la partie pour juste UserEJB, qui est ce que je suis en train de tester. Faites-moi savoir si vous avez besoin de plus. Merci. – user3758745
Je pense que vous devez supprimer ' ejb/UserHome local-jndi-name>' du fichier jboss.xml parce que le conteneur doit figurer le lien des entrées ' UserEJB ' dans le fichier ejb-jar.xml. De plus, cela n'a pas de sens de placer ' ... ejb-local-ref>' dans le fichier jboss.xml non plus (sauf si vous essayez de surcharger le contenu du fichier ejb-jar fichier .xml). –