2012-05-06 2 views
1

Я пытаюсь разработать небольшое веб-приложение как тренинг для своих предстоящих финалов, и я не могу понять, что я делаю неправильно.Почему я не могу создать управляемый файл в jpa?

Это мой * Сущности * L Kunde и Konto (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

Неисправность в init of managedbean, подсказывает мне, что инъекция эйбов терпит неудачу. Есть ли более длинное сообщение об ошибке?

Смежные вопросы