[英]EJB injection in Servlet with glassfish4
我有一個servlet類,可以與glassfish3和Java-7一起正常工作。
耳朵包含以下資源:
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.