2009-03-10 5 views
1

J'ai cru comprendre que JBossAS 5.x prenait en charge l'injection de beans EJB3 dans les servlets avec l'annotation @ EJB3. J'utilise la configuration par défaut pour JBossAS 5.0.1.GA et cela ne fonctionne pas. J'ai ajouté l'argument mappedName à l'annotation @EJB avec le nom JNDI des beans session, et cela ne fait rien. Pas d'erreurs apparentes, le haricot n'est juste jamais injecté.Injection de beans JBoss 5 AS et EJB3 à partir de servlets?

Les beans session sont dans le ejb-jar, les servlets dans une guerre, tout est emballé dans une oreille. Les recherches manuelles JNDI fonctionnent très bien. Des idées?

Répondre

0

Cela peut arriver si votre fichier web.xml pointe vers une ancienne version de la spécification. Idéalement, il devrait être quelque chose comme

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"> 

Ce link peut aider un peu trop.

+0

Merci! Une petite mise en garde, il semble que l'espace de nom devrait être http://java.sun.com/xml/ns/javaee, pas http://java.sun.com/xml/ns/j2ee. J'ai donc changé pour: xmlns = "http://java.sun.com/xml/ns/javaee" xsi: schemaLocation = "http://java.sun.com/xml/ns/javaee web- app_2_5.xsd " – joshz

0

Vous devez également vérifier le fichier jar requis pour le déploiement EJB3 dans le fichier classpath.JAr est jboss-ejb3-ext-api.jar.

Questions connexes