2017-09-13 1 views
0

Mon projet actuel consistant en un module war et ejb utilise un pot (incorporé via maven). Ce jar contient un composant CDI qui, quand j'injecte ceci dans le module de guerre fonctionne comme prévu, mais quand j'injecte ceci dans mon module d'ejb j'obtiens un NoClassDefFoundError pendant le démarrage de mon WAS 8.5 dans l'éclipse (profil complet).eclipse: CDI externe dans le module EJB: NoClassDefFoundError

Lorsque je démarre le serveur en premier, ajoutez l'injection plus tard et republiez cela semble fonctionner. Aussi quand j'utilise le profil Liberty cela fonctionne. Aussi sur Z/os et IPAS cela fonctionne comme prévu.

Je pense qu'il pourrait avoir quelque chose à faire avec la charge de classe, mais je n'ai aucune idée de comment résoudre cela correctement.

Utilisation d'Eclipse Enseigne lumineuse, WAS profil complet 8.5.5.11, jee6 Project utilise Java 8 tandis que le composant utilise Java 6

Ceci est la première partie de la stacktrace:

[13-9 -17 14: 54: 26: 589 CEST] 0000003e InjectionProc W CWNEN0047W: Les annotations de ressources sur les champs de la classe BestelFacade seront ignorées. Les annotations ne peuvent pas être obtenues en raison de la exc eption : Enregistreur à java.lang.Class.getDeclaredFieldsImpl (Native Method)

Merci

+0

Où se trouve le fichier JAR dans votre déploiement (ear/lib ou war/lib)? Quels haricots contient-il (CDI pur, ou EJB sans état/stateful beans)? Collez également ici votre 'NoClassDefFoundError'. – Siliarus

+0

Le fichier de classe de la classe n'est pas disponible pour le chargeur de classe essayant de le faire. Vous avez probablement besoin de le mettre ailleurs. –

+0

@Siliarus Le pot est juste une dépendance maven comme les autres. Pour autant que je sache, il contient des beans CDI purs (seule l'annotation que j'ai utilisée est @Dependent). Pour Error voir question éditée. – Bgvv1983

Répondre

0

J'ai trouvé un moyen de faire le travail, mais je suis pas sûr si c'est une solution appropriée ou juste une solution de contournement tout en masquant le vrai problème.

Quand je jette un oeil à l'ensemble du module de l'oreille que je vois dans la colonne source c:/ws /.../ pot et dans le chemin deploy lib/jar

quand je change la source dans /. .ear/target /../ jar cela fonctionne