Mehrere EJBS injizieren

Diskutiere Mehrere EJBS injizieren im Application Tier Forum; Ist es in EJB irgendwie möglich, alle konkreten Instanzen eines Interfaces zu bekommen? @Local public interface TestInterface {}...

  1. Sanix
    Sanix Neues Mitglied
    Ist es in EJB irgendwie möglich, alle konkreten Instanzen eines Interfaces zu bekommen?

    Code (Java):

    @Local
    public interface TestInterface {}

    @Stateless
    public class Test1 implements TestInterface{}

    @Stateless
    public class Test2 implements TestInterface{}

    @Stateless
    public class Service{
    @EJB
    private TestInterface[] tests;
    }

     
    Der obige Code funktioniert so nicht.
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. Das ist möglich:
    Code (Java):
    @EJB(name=ejb/Test1)
    TestInterface a;

    @EJB(name=ejb/Test2)
    TestInterface b;
    Allerdings kann es dann immer noch sein das der EJB-Container 20 Instanzen von Test1 generiert hat und du nur eine von diesen erhältst.
     
  4. Andgalf
    Andgalf Neues Mitglied
    Sowas geht mit CDI also ab EJB3.1:

    Code (Java):

    @Inject
        private Instance<TestInterface> interfaceInstances;
     
    interfaceInstances ist dann ein Iterable mit den jeweiligen implementierungen.
     
  5. Sanix
    Sanix Neues Mitglied
    Danke, das ist genau das was ich gesucht habe.

    Für andere, welche das auch verwenden wollen. Hier ein paar Stolpersteine:
    • JEDES Modul muss ein beans.xml enthalten, welches leer sein kann
    • Das Ding hat noch einige Bugs z.B. bei Glassfish: Die Klasse muss vom Interface direkt erben, sonst wird das Proxy auf den falschen Typ kreiert. Der Bug wurde gemeldet, jedoch verweise sie auf eine andere Library, auf welche sie keinen Einfluss haben.
    • Es verträgt Generics problemlos, wo ich teilweise Probleme mit der EJB-Annotation hatte
     
Die Seite wird geladen...

Mehrere EJBS injizieren - Ähnliche Themen

Variable durch mehrere Methoden ändern und nutzen
Variable durch mehrere Methoden ändern und nutzen im Forum Allgemeine Java-Themen
Von mehreren Klassen aus auf das selbe Objekt zugreifen
Von mehreren Klassen aus auf das selbe Objekt zugreifen im Forum Java Basics - Anfänger-Themen
Speichern von mehreren Daten
Speichern von mehreren Daten im Forum Java Basics - Anfänger-Themen
ButtonController löst mehrere Methoden aus
ButtonController löst mehrere Methoden aus im Forum Java Basics - Anfänger-Themen
Java FXML mehrere Fenster
Java FXML mehrere Fenster im Forum AWT, Swing, JavaFX & SWT
Thema: Mehrere EJBS injizieren