2010-10-27 7 views
2

J'utilise Eclipse 3.6 et Jboss 4.2. J'ai créé Enterprise Application avec deux modules, EJB et WEB.Impossible d'injecter EJB dans GWT ServiceImpl (JBoss 4.2)

J'ai converti le module WEB en application GWT (et ajouté les fichiers nécessaires - HTML et CSS). Le problème est lorsque j'ai besoin d'injecter les interfaces distantes ou locales dans la servlet GWTServiceImpl à l'aide de l'annotation @EJB, et lorsque je déploie l'application sur JBoss et que je la lance en utilisant le navigateur par défaut (mode web ou mode prod) , Je reçois NullPointerException en disant que, l'interface SLSB est nulle. Ce qui signifie qu'aucune injection n'a eu lieu.

Répondre

1

J'ai rencontré le même problème (aucune injection n'est survenue pour les champs @EJB) avec Glassfish v3 il y a quelque temps. Dans mon cas, il s'est avéré être le problème, que GWT utilise un descripteur de déploiement de la version 2.3 par défaut. Quand je l'ai changé à 2.5 (ou plus récent), cela a fonctionné. JBoss 4.2 prend en charge Servlet 2.5, donc vous devriez pouvoir utiliser quelque chose comme:

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

    ... 

</web-app> 
+0

Je l'ai soigneusement changé, mais ça ne marche pas trop! –

+0

@Mohammed: Si cela a fonctionné avant de convertir le projet en application GWT, alors quelque chose doit avoir changé avec votre déploiement (ear, war, ejb-jar) - car @EJB fonctionne dans RemoteServiceServlets de GWT comme dans n'importe quel servlet (testé avec GWT 2.0.3). –

Questions connexes