EJB,无法在Json响应方法中注入

时间:2016-02-03 09:29:20

标签: java ejb

我的EJB有问题:

public class EntryResponseBuilder extends BaseResponseBuilder {
@EJB
private ApplicationCustomerCache applicationCustomerCache; //null

我在类中有这样的东西,它返回一个JSON响应。

@Singleton
@Startup
public class ApplicationCustomerCache {
    @EJB
    CustomerDao customerDao;
    private Map<Integer, Customer> customerMap;
    private Map<Integer, List<Customer>> applicationToCustomersMap;
    private static Logger log = Logger.getLogger(ApplicationCustomerCache.class);

    @PostConstruct
    public void initialize() {
        try {
            get();
        } catch (Exception e) {
            log.error("ApplicationCustomerCache.init()", e);
        }
    }

    private void get() throws SQLException {

它的工作正常,但是当我尝试在EntryResponseBuilder注射时,它是空的。之前的一个函数,它注入,我有@Stateless的类。我在谷歌搜索过,但找不到任何解决方案。

2 个答案:

答案 0 :(得分:2)

你在这里处理两个问题:

  1. 你试图在POJO上注入一个bean实例,而POJO不是由容器管理的;
  2. 您关注的EJB规范是什么?
  3. 对于他们两人,我认为以下答案可以帮助您:

答案 1 :(得分:0)

我使用InitialContext()

解决了这个问题
ApplicationCustomerCache applicationCustomerCache = (ApplicationCustomerCache) new InitialContext().lookup("java:comp/ApplicationCustomerCache");