簡體   English   中英

使用glassfish4在Servlet中進行EJB注入

[英]EJB injection in Servlet with glassfish4

我有一個servlet類,可以與glassfish3和Java-7一起正常工作。

耳朵包含以下資源:

    • 戰爭
    • x-interface.jar
    • x-ejb.jar

war文件中的Servlet如下所示:

@Path("/X")
@ManagedBean
public class XWebservice {

    @EJB
    SessionBeanRemoteInterface bean;

    @GET
    public String get() {
        return bean.sessionBeanMethod();
    }
}

ejb-jar中的bean如下所示:

@Stateless
public class XBean implements SessionBeanRemoteInterface {
}

為什么這在使用Java-8的glassfish 4.1.1中不再起作用? (NullPointerException,bean為空)

手動查找,但是工作正常:

new InitialContext().lookup(SessionBeanRemoteInterface.class.getName()).sessionBeanMethod();

我通過將@RequestScoped批注添加到Webservice解決了該問題。

另外,@ @Singleton似乎也可以工作。

您有幾個實現? 如果超過一個,則使用限定符( https://docs.oracle.com/javaee/6/tutorial/doc/gjbck.html )或替代方法( https://docs.oracle.com/javaee/6/tutorial/ doc / gjsdf.html )。 如果容器無法選擇注射方式將無法使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM