无法在GWT ServiceImpl(JBoss 4.2)中插入EJB

无法在GWT ServiceImpl(JBoss 4.2)中插入EJB,gwt,jboss,dependency-injection,Gwt,Jboss,Dependency Injection,我正在使用Eclipse3.6和JBoss4.2。我用两个模块创建了企业应用程序,EJB和WEB 我已经将WEB模块转换为GWT应用程序(并添加了必要的文件—HTML和CSS) 问题是,当我需要使用@EJB注释在GWTServiceImpl servlet中注入远程或本地接口时,当我在JBoss上部署应用程序并使用默认浏览器(即web模式或prod模式)启动它时,我会得到NullPointerException,表示SLSB接口为null。这意味着没有发生注入。不久前,我在Glassfish v

我正在使用Eclipse3.6和JBoss4.2。我用两个模块创建了企业应用程序,EJB和WEB

我已经将WEB模块转换为GWT应用程序(并添加了必要的文件—HTML和CSS)


问题是,当我需要使用
@EJB
注释在GWTServiceImpl servlet中注入远程或本地接口时,当我在JBoss上部署应用程序并使用默认浏览器(即web模式或prod模式)启动它时,我会得到NullPointerException,表示SLSB接口为null。这意味着没有发生注入。

不久前,我在Glassfish v3中遇到了同样的问题(没有对@EJB字段进行注入)。在我的例子中,问题在于GWT默认使用版本2.3的部署描述符。当我把它改成2.5(或更新版本)时,它工作了。JBoss 4.2支持Servlet 2.5,因此您应该能够使用如下内容:

<?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>

...

@Mohammed:如果它在您将项目转换为GWT应用程序之前就起作用了,那么您的部署(ear、war、ejb jar)一定发生了一些变化,因为@ejb在GWT的RemoteServiceServlet中工作,就像在任何Servlet中一样(使用GWT 2.0.3测试)。