【问题标题】:Unable to inject EJB in PrimeFaces LazyDataModel无法在 PrimeFaces LazyDataModel 中注入 EJB
【发布时间】:2014-02-04 17:11:06
【问题描述】:

我正在尝试将 primefaces LazyDataModel 用于 JSF 中的表格视图,问题是我无法向类中注入任何内容。对于注入的对象,我总是得到空值。

例如我在注射

@PersistenceContext(unitName = "domainDS")
private EntityManager em;

或 EJB

@EJB
OrganizationHandler orgHandler;

但我对它们都为空。

整个惰性数据模型类

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

import si.arctur.controller.OrganizationHandler;
import si.arctur.model.Organization;

@Named
@Stateless
public class LazyOrganizationDataModel extends LazyDataModel<Organization> implements Serializable {

private static final long serialVersionUID = 675394666656356734L;

@PersistenceContext(unitName = "domainDS")
private EntityManager em;

@EJB
OrganizationHandler orgHandler;

public LazyOrganizationDataModel() {
    super();
}

@SuppressWarnings("unchecked")
@Override
public List<Organization> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) {

    List<Organization> data = orgHandler.selectOrganizatoins(first, pageSize, sortField, "asc", filters);
    //row count
    this.setRowCount(data.size());

    return data;
    }
}

【问题讨论】:

    标签: primefaces dependency-injection ejb cdi


    【解决方案1】:

    您可能没有注入惰性数据模型。根据他们的例子,他们向某人展示了它的实例化。您应该改为通过 CDI 获得对 bean 的引用。

    【讨论】:

    • Tnx 就是这样......我需要重新学习 CDI 知识 ;-)
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2015-12-26
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2017-11-04
    相关资源
    最近更新 更多