如何在自定义Converter内部访问EJB bean

这个converter是从我的JSF调用的。 我已经在faces-config.xml注册了它

 public class ProjectConverter implements Converter{ @EJB DocumentSBean sBean; @ManagedProperty(value="#{logging}") private Logging log; public ProjectConverter(){ } public Object getAsObject(FacesContext context, UIComponent component, String value) { if(value.trim().equals("")){ return null; } return sBean.getProjectById(value); } public String getAsString(FacesContext context, UIComponent component, Object value) { if(value == null){ return null; } return String.valueOf(((Project) value).getId()); } } 

我遇到java.lang.NullPointerException ,当我在getAsObject() ,主要原因是因为我的Session Bean sBean为null。 我不知道如何解决这个问题,我需要访问我的Session bean,以便我可以从我的数据库中查询

正如BalusC所说,注射仅适用于托管豆类。 但是,您可以在faces-config中将转换器声明为托管bean

  myConverter com.example.MyConverter request  

然后在具有el表达式的jsf组件中引用它: