Bonjour,
J'ai un problème un peu idiot... Je ne suis pas un expert JavaEE (ni Netbeans), mais je dois faire fonctionner une petite appli qui marchait raisonnablement bien sous Netbeans 8.2.
J'utilise Nebeans 11.2 (qui tourne sur JDK 11) et je compile avec JDK8 pour Glassfish 5.1.0.
J'essaie d'utiliser des projets générés par Ant (soit "Enterprise Application" soit "EJB module"), mais mon problème est qu'apparemment ces projets sont condamnés à utiliser EJB 2.1... J'ai notamment un ejb-jar.xml qui contient l'en-tête suivante :
Et de fait, pas moyen de faire fonctionner une injection avec @EJB dans un managed bean (j'ai une erreur de résolution JNDI concernant l'EJB injecté).
Code : Sélectionner tout - Visualiser dans une fenêtre à part <ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" ...
Si je change la valeur numérique de l'attribut "version" à 3.0, j'ai cette erreur au déploiement :
Qu'est-ce qui, dans mon projet, impose l'utilisation des EJB 2.1, et comment le changer pour autoriser EJB3 ?java.io.IOException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 219; Deployment descriptor file META-INF/ejb-jar.xml in archive [classes]. cvc-complex-type.3.1 : La valeur '3.0' de l'attribut 'version' de l'élément 'ejb-jar' n'est pas valide par rapport à la syntaxe d'attribut correspondante. L'attribut 'version' a une valeur fixe de '2.1'.
Avant que vous ne le suggériez, je pourrais utiliser les templates Maven ou Gradle (et un projet "web" avec Maven me permet d'utiliser sans problème des EJB3 avec CDI), mais pour chacune de ces deux technos il me manque des options dans les templates de génération pour faire fonctionner mon application avec l'ensemble de ses fonctionnalités (ou alors il y a ce qu'il faut mais je n'y arrive pas).
Merci d'avance.
Partager