2012-05-06 99 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失敗。是否有更長的錯誤信息?

相關問題