JBAS014544: Pas d'EJB trouvé avec interface
Je suis nouveau sur Java EE et je suis à l'aide de JBoss 7 pour créer mon premier projet. J'ai une OREILLE projet, un projet EJB, WEB de projet et un projet JPA dans mon espace de travail. Les ejb créé dans le projet EJB veut utiliser un ejb créé dans la JPA projet. Tout compile bien, mais quand je déployer le projet EAR-je obtenir de l'exception suivante et le déploiement échoue. Ici est la principale exception de cause.
JBAS014544: Pas d'EJB trouvé avec interface de type
'com.kohlisoft.stockmanagement.jpa.service.StockManagementBeanJpa " pour
la liaison
com.kohlisoft.stockmanagement.ejb.principal.StockManagementService/sms
Je soupçonne que les EJB projet n'est pas en mesure de regarder la classe en jpa jar.
J'ai traversé les différents liens à faire le tri, mais aucune aide. Basé sur quelques suggestions que j'ai modifié, mais toujours pas de joie.
1. J'ai vérifié la structure et de la JPA projet est de passer sous le dossier lib dans .de l'oreille.
2. Mise à jour de l'EJB projet de manifeste pour ajouter le fichier de dependeny de la jpa jar.
Je voudrais vraiment apprécier toute l'aide ici.
L'EJB dans la JPA projet.
@Stateless
@LocalBean
public class StockManagementBeanJpaBean implements StockManagementBeanJpa {
@PersistenceContext(unitName="StockManagement")
private EntityManager em;
L'EJB dans l'EJB projet qui l'utilise:
@Stateless
@LocalBean
public class StockManagementService implements StockManagementServiceLocal {
@EJB
StockManagementBeanJpa sms;
...
EJB Projet fichier MANIFEST.
Manifest-Version: 1.0
Class-Path: StockManagement-ejbClient.jar
Dependencies: lib/StockManagement-jpa.jar
Voici la structure de l' .les pots et les .la guerre dans .de l'oreille.
.ear
|____ ejb.jar
|
|____ ejbClient.jar
|
|____ web.war
|
|____ /lib
|
| ____ jpa.jar
|
| ____ all other jars related to derby client, hibernate, jta etc.
Laissez-moi savoir si tous les autres fichiers sont nécessaires.
Merci de poster votre oreille de la structure du fichier. Indiquant quelles libs sont placés là où.
Je pense que vous êtes censé pour annoter vos interfaces à Distance ou d'annotations Locales.
les annotations que vous avez mentionnés sont appliquées sur les différentes interfaces.
OriginalL'auteur atko | 2013-05-26
Vous devez vous connecter pour publier un commentaire.
La structure de votre fichier semble bien.
Alors, où est la problème ?
@Localbean
doit être utilisé à l'intérieur de votre EJB bean uniquement lorsque votre EJB n'est pas l'extension de l'interface.@Local
peut être utilisé pour interface puis d'étendre votre EJB avec l'interface ou à l'aide de@Local
straingh à l'intérieur de votre pas-interface EJB. Mais@Localbean
est utilisé uniquement pour pas-interface EJB. Donc, ce que vous faites n'est pas droit.Depuis que vous êtes à l'extension de l'interface, procédez comme ci-dessous:
Interface
EJB
Le faire pour tous les EJBs.
Je tiens à souligner 1 chose de plus que les
@Local
fonctionne dans votre cas parce que vous appelez les Ejb à partir de la même application (même OREILLE). Cela ne fonctionnera pas dans le cas de la demande d'appel(différent de l'OREILLE, la GUERRE ...) ou client à distance l'appel de votre EJB. Dans ce cas, vous aurez besoin de@Remote
.quelle est l'erreur ?
c'est la même erreur qu'avant.
merci de poster le message d'erreur trace de la pile.
le problème n'est pas la bonne formation des pots. Le problème est que l'EBJ pot n'est pas en mesure de voir les ejb sous JPA jar. Si je déplace la JPA pot au même niveau de jar EJB, il fonctionne très bien. Espérons que cette information vous aide.
OriginalL'auteur Ravi Trivedi