Ich habe ein staatenloses DAO-EJB mit einer No-Interface-View, die von einer generischen abstrakten DAO-Klasse mit einer zusätzlichen Methode geerbt wird. So ist der Baum FooDAOBean <- extends GenericDAOImpl <- implements GenericDAOInterface
(click here to see GenericDAO implementation - in der Verbindung ist es nicht eine abstrakte Klasse):@EJB Injection scheitert in einem Singleton für eine Bean ohne Interface-Sicht
@Stateless
public class FooDAOBean extends GenericDAOImpl<ENodeFocus, Serializable>{
@Override
public List<Foo> readAll() {
// do something...
}
}
und ich habe eine Initialisierung Bohne, die die Anwendung mit einigen Einträgen konfigurieren sollte: immer
@Singleton
@Startup
public class InitializationBean {
@EJB
FooDAOBean dao;
@PostConstruct
public void initialize() {
// do something
}
}
auf den Einsatz ich bin die Fehler:
WFLYNAM0059: Ressourcensuche, um nach Injektion fehlgeschlagen: env/shitstorm.beans.InitializationBean/dao
WFLYEE0046: Fehler beim Komponentensicht
instanziiert Wenn ich eine Remote-Schnittstelle implementieren und mit Anmerkungen versehen FooDAOBean
mit @Remote(<RemoteInterface>.class)
funktioniert es richtig. Aber ich möchte keinen Fernzugriff erlauben. Für mich ist es wichtig, dass FooDAOBean
Methoden nur in der gleichen JVM (lokal) zugänglich sind. FooDAOBean
und InitializationBean
sind im selben EAR-Projekt, also sollte es funktionieren oder fehlt mir hier etwas? Hat es mit dem Singleton zu tun oder was passiert hier? Muss ich eine lokale Schnittstelle implementieren? Ich dachte seit EJB 3.0 brauche ich es nicht mehr. Danke vielmals! :)