我正在使用EJB 3.1和jersey進行restapi。我想有一個如下的SuperResource
,然後由下面的實際剩餘資源繼承。我現在的方式是,我的@EJB
對象爲空。有誰知道如何解決這一問題?多態EJB客戶端
@Stateless
public class SuperResource {
@EJB
protected GenericDao<DomainObject> dao;
. . .
}
public class MyResource extends SuperResource{
public String doGet(){
return dao.get(...);
}
}
我試圖@Stateless
和@Local
,並SuperResource
和MyResource
之間的整個真值表。這些排列似乎都不起作用。
我不知道這是很重要的,我的服務器是GlassFish 3.1.2
編輯補充細節:
我不這麼認爲,但似乎更多的細節可能需要在這裏:我的應用程序的
結構:
@Local
public interface GenericDao<T extends DomainObject> {…}
public interface LoginDao extends GenericDao<Login>{...}
@Stateless
public class GenericDaoImpl<T extends DomainObject> implements GenericDao<T> {…}
@Stateless
public class LoginDaoImpl extends GenericDaoImpl<Login> implements LoginDao {…}
@Entity
public class Login implements java.io.Serializable, DomainObject {…}
什麼工作:
@Stateless
@Path("mypath")
public class MyResource{
@EJB
private LoginDao dao;
public String doGet(){
return dao.get(...);
}
}
將來自SuperResource的@Stateless註釋移至MyResource。 –