Pourquoi mon projet d'oreille ne peut-il pas voir les EJB et entités annotés dans mon projet JPA?
-
12-11-2019 - |
Question
J'utilise IBM RAD 7 (AKA ECLIPSE 3.4) et WebSphere 7.
J'ai un espace de travail avec une configuration EJB de base; Projects Testear, TesteJB, TestJPA, TestWeb.
Je peux annoter un EJB ("@Stateless EntityService") dans le projet TesteJB et cela fonctionne bien. Mais si je mets un EJB ("@Stateless EntityDao") dans le projet TestJPA, il n'est pas injecté dans l'entité-service. Si je déplace EntityDao vers le projet TesteJB, cela fonctionne bien.
De plus, si j'annote une entité de classe A ("@entity myentity"), il n'est pas connu comme une entité du conteneur (j'obtiens une "entité non reconnue" ... "Types d'entités connus: [] Erreur). Mais si j'ajoute une balise my.domain.myentity à la persistance de Testejb.xml, cela fonctionne bien.
QUESTION: Pourquoi le projet TesteJB ne peut-il pas reconnaître les classes annotées dans le projet TestJPA?
Remarque: il n'y a pas d'onglet "Assembly de déploiement" dans Eclipse 3.4, mais il existe un onglet "Java EE Module Dependance" (Testear> Properties> Java EE Module Dependances); J'ai vérifié et tous les projets sont dans la liste et vérifiés (c.-à-d. Testejb, testjpa, testweb).
Toute aide est grandement appréciée! Celui-ci m'a vraiment perplexe.
Merci, Rob
La solution
Il semble qu'il y ait quelques questions ici ...
Pour votre projet Testejb, n'utilisez pas les haricots testjpa, assurez-vous que les deux sont répertoriés comme un <ejb>
module et non <jar>
Module dans votre fichier application.xml dans Testear. Assurez-vous également qu'ils font tous les deux partie de l'oreille.
Pour les types d'entités sans connu si cette erreur apparaît dans RSA, vous voudrez peut-être cliquer avec le bouton droit sur le projet et rechercher "JPA Tools" et sélectionner "Configurer les entités JPA", si vous ne voyez pas "les outils JPA", assurez-vous que les facettes JPA sont activé pour ce projet. Si cela se produit sur le serveur (était-ce que je présume), assurez-vous que la ligne suivante n'est pas dans votre persistance.xml <exclude-unlisted-classes>true</exclude-unlisted-classes>
Ou toutes les classes devront y être répertoriées, pas nécessairement une mauvaise chose.
À moins qu'il ne soit absolument critique, je stockerais vos EJB et entités dans le même projet pour simplifier.