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 Java-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 Guest
    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

Scanner mehrere male benutzen (Konsole)
Scanner mehrere male benutzen (Konsole) im Forum Java Basics - Anfänger-Themen
JTable - mehrere ausgewählte Rows in ArrayList
JTable - mehrere ausgewählte Rows in ArrayList im Forum Allgemeine Java-Themen
Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen
Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen im Forum AWT, Swing, JavaFX & SWT
mehrere If Bedingungen
mehrere If Bedingungen im Forum Java Basics - Anfänger-Themen
Podiumsplätze mehrere Spieler
Podiumsplätze mehrere Spieler im Forum Plauderecke
Thema: Mehrere EJBS injizieren