2012-03-24 44 views
1

這是我從Java EE 5遷移得到的一個澄清問題。我目前正在開發一個打包在WAR文件中的Java EE 6 Web服務,並且我想知道是否可以在其上使用CDI。我已經看到了一些使用@Stateles的註釋的例子,這在WAR中是不可能的(據我所知)。Java EE 6 WebService和CDI注入

當前實現:

@WebService 
public class MyService{ 

    @Inject 
    HelloTeller teller: 

    @WebMethod 
    public String sayHello(){ 
     teller.sayHello(); 
    } 
} 

注:另一種方法是專門創建的ejbModule此Web服務。

回答

2

在EE6中,您應該能夠在戰爭中使用SLSB作爲JAX-WS端點。您可以注入EJB,從CDI請求範圍和應用程序範圍的bean。

+0

我試過了,但注入的字段總是空。我可以讓它在一個單獨的純ejb項目中工作,但不能使WAR變白。 – 2012-03-24 21:34:00

+0

得到了arquillian測試或簡單的war/github項目? – LightGuard 2012-03-25 02:29:31

+2

@Timoteo Ponce:您的WEB-INF目錄中是否有beans.xml文件?沒有,CDI不起作用。人們經常忘記添加這個文件... – kraftan 2012-03-25 15:56:37