Java EE 7 - Injektion in Runnable/Callable-Objekt

Concurrency Utilities(JSR-236) wurde in Java EE 7.

Gibt es eine Möglichkeit, wie man Spritzen meine EJBs in Runnable/Callable-Objekt?

Speziell möchte ich so etwas wie dieses:

ejb mit business-Logik

@LocalBean
public class MyEjb {
    public void doSomeStuff() {
        ... do some stuff ...
    }
}

runnable/callable-Klasse, wo ich will zu injizieren Instanz MyEjb

public class MyTask implements Runnable {
    @EJB
    MyEjb myEjb;

    @Override
    public void run() {
        ...
        myEjb.doSomeStuff();
        ...
    }
}

Objekt beginnt die neue Aufgabe

@Singleton
@Startup
@LocalBean
public class MyTaskManager {
    @Resource
    ManagedExecutorService executor;

    @PostConstruct
    void init() {
        executor.submit(new MyTask());
    }
}

myEjb Feld in MyTask ist immer null. Ich nehme an, es könnte helfen, JNDI-lookup, aber es ist eine richtige Art und Weise, wie Sie dies tun?

  • Googeln Sie ein bisschen herum, es scheint, dass Sie nur in der Lage sein, es zu tun. Beispiel: martinsdeveloperworld.wordpress.com/2014/02/25/... . Aber wie schon gesagt in einem anderen Kommentar, Sie brauchen zu lassen, das server-handle der task-Erstellung.
InformationsquelleAutor madox2 | 2014-01-12
Schreibe einen Kommentar