3

看起来依赖项没有被注入,我的代码有什么问题吗?

<p:dataTable styleClass="centralizado" id="cdt" var="c" value="#{indexBean.getCampanhas()}">

索引豆

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

@ManagedBean
@ViewScoped
public class IndexBean {
    @Inject
    private GerenciaContas contas;
    @Inject
    private GerenciaCampanhas campanhas;
    @Inject
    private Conversor conv;

    public List<Campaign> getCampanhas() throws Exception {
        return campanhas.getTodasCampanhas();
    }

    public GerenciaContas getContas() {
        return contas;
    }

    public Conversor getConversor() {
        return conv;
    }

}

我使用的课程之一:

public class GerenciaCampanhas 
{
    public List<Campaign> getTodasCampanhas() throws Exception {
              //ordinary code
    }
}

我的 Conversor 课程中是否缺少任何注释?我收到 NullPointerException 因为“GerenciaCampanhas campanhas”为空,然后在我的 indexBean 中调用方法 getCampanhas() 谢谢

4

1 回答 1

-1
  1. 替换@ManagedBean@Named- 您不能@Inject在 JSF 托管 bean 中使用(请参阅此问题
  2. 选择其他范围@ViewScoped- CDI 托管 bean 没有这样的范围;
  3. 确保您beans.xml的 ejb 的 META-INF 文件夹中有该文件(如果它是一个企业项目,它位于您的 ejb 项目中的 META-INF 和您的 Web 项目中的 WEB-INF 下)。

喜欢:

import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import javax.inject.Inject;
import xxxx.GerenciaContas;

@Named
@SessionScoped
public class IndexBean implements Serializable {
    @Inject
    private GerenciaContas contas;

如果您仍需要按照此问题@ViewScoped中的说明向您的项目添加 MyFaces CODI 扩展。来自巴西的问候 =)。

于 2013-01-17T15:09:56.957 回答