2017-09-07 4 views
0

Selon où je place mes fichiers beans.xml, dans mon projet CDI travaille soit pour les classes annotées @Named trouvées dans la bibliothèque jarres OR pour les classes annotées @Alternatives trouvées dans le projet principal. Je ne peux pas savoir où les placer pour que les deux travaillent.CDI WELD Beans.xml dans META-INF de jar dans lib bloquant celui dans WEB-INF du projet

Lors de la construction, j'ai un core.jar qui a des classes annotées @Default et des classes annotées @Named.

Le fichier core.jar se trouve dans le fichier web-inf/lib de mon projet.

Dans ce projet, en fonction de l'environnement de construction, j'utilise certaines classes @Alternative annotés qui sont spécifiées dans le beans.xml du projet Web (dans WEB-INF)

Donc, j'ai 2 beans.xml

1 dans le META-INF d'un core.jar qui est construit et placé dans le projet lib eT 1 dans le WEB-INF du projet de guerre qui obtient déployé (avec des solutions de rechange spécifiées)

avec les deux beans.xml à ces emplacements, le gestionnaire de bean ne trouve pas les alternatives spécifiées dans le fichier beans.xml (celui Lorsque je supprime le beans.xml du META-INF de la dépendance jar et le redéploie, les alternatives fonctionnent bien (étrangement) mais les classes annotées @Named ne sont plus trouvées. ...

Des idées?

Répondre

0

Pourriez-vous essayer:

From CDI 1.1 onwards the alternative can be enabled for the whole 
application using @Priority annotation. 

Comme décrit dans alternatives alors vous aurait pas besoin de dépendre de beans.xml comme point d'activation pour les alternatives.