2010-10-27 38 views
2

我正在使用Eclipse 3.6和Jboss 4.2。我用兩個模塊創建了企業應用程序,EJB和WEB。無法在GWT ServiceImpl中注入EJB(JBoss 4.2)

我已經將WEB模塊轉換爲GWT應用程序(並添加了必要的文件 - HTML和CSS)。

問題是,當我需要使用@EJB批註在GWTServiceImpl servlet中注入遠程或本地接口時,以及在JBoss上部署應用程序並使用默認瀏覽器(即Web模式或prod模式)啓動應用程序時, ,我得到NullPointerException,說SLSB接口爲空。這意味着沒有注射發生。

回答

1

前段時間我用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> 
+0

我仔細地改變了它,但並不是不行! – 2010-10-27 14:33:55

+0

@Mohammed:如果它在將項目轉換爲GWT應用程序之前有效,那麼隨着部署(ear,war,ejb-jar)必須更改 - 因爲@EJB在GWT的RemoteServiceServlets中工作,就像在任何Servlet中一樣GWT 2.0.3)。 – 2010-10-28 06:15:12