2012-05-06 59 views
1

我想开发一个小型的网络应用程序作为我即将到来的决赛的训练,我无法弄清楚我做错了什么。为什么我不能在jpa中实例化一个managedbean?

这些都是我* 实体 * L KundeKonto(many2many关系),自动创建的表Kunde_Konto只有我的实体的两个主键。

@Entity 
@NamedQueries({ 
    @NamedQuery(name="findKundeById", query="select k from Kunde k where k.svnr = :svnr"), 
}) 
public class Kunde implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Column(precision=4, scale=0) 
    private Long svnr; 

    @ManyToMany 
    private List<Konto> konten; 
} 

@Entity 
@NamedQueries({ 
    @NamedQuery(name="findKontoByBesitzer", query="select k from Konto k join k.besitzer b where b.svnr = :svnr") 
}) 
public class Konto implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @Column(precision=4, scale=0) 
    private Long knr; 

    @ManyToMany(mappedBy="konten") 
    private List<Kunde> besitzer; 
} 

这是我Managed Bean的

@ManagedBean 
@SessionScoped 
public class KundenKontoList implements Serializable { 
    private FacesContext fc = null; 
    private HttpServletRequest hsr = null; 
    private HttpSession hs = null; 

    @EJB 
    private KontoFacadeLocal kontoFacade; 

    @EJB 
    private KundeFacadeLocal kundeFacade; 

    private Kunde k; 
    private List<Konto> konten; 

    /** 
    * Creates a new instance of KundenKontoList 
    */ 
    public KundenKontoList() { 
     fc = FacesContext.getCurrentInstance(); 
     hsr = (HttpServletRequest) fc.getExternalContext().getRequest(); 
     hs = hsr.getSession(); 

     k = (Kunde) hs.getAttribute("kunde"); 
     konten = kontoFacade.findKontoByBesitzer(k); 
    } 
} 

例外

com.sun.faces.mgbean.ManagedBeanCreationException: Klasse at.pf.controller.KundenKontoList kann nicht instanziiert werden. 

其翻译意味着KundenKontoList不能instatiated,在该行抛出:

konten = kontoFacade.findKontoByBesitzer(k); 

//method in the facade: 
@Override 
public List<Konto> findKontoByBesitzer(Kunde k) { 
    Query q = em.createNamedQuery("findKontoByBesitzer"); 
    q.setParameter("svnr", k.getSvnr()); 
    return q.getResultList(); 
} 

我认为它与kontoFacade有关,但我不知道确切的问题是什么。

回答

0

托管bean初始化失败,向我暗示注入ejbs失败。是否有更长的错误信息?

相关问题