1

次の決勝戦のトレーニングとして小さな Web アプリケーションを開発しようとしていますが、何が間違っているのかわかりません。

これらは私の *エンティティ*LKundeKonto(many2many-relationship) であり、自動作成されたテーブルKunde_Kontoには私のエンティティの 2 つの主キーしかありません。

@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;
}

そして、これは私のマネージド 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、次の行にスローされます。

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、正確な問題が何であるかはわかりません。

4

1 に答える 1

0

managedbean の初期化に失敗すると、ejbs の注入が失敗していることがわかります。もっと長いエラーメッセージはありますか?

于 2012-07-14T17:04:00.447 に答える