2010-12-02 12 views
1

Ich muss eine Hintergrundaufgabe von einem Servlet in einem GlassFish-Server starten, und ich dachte WorkManager war eine irgendwie Java EE-kompatible Weise, dies zu erreichen.Wie verwende ich WorkManager mit GlassFish 3?

Früher in Glassfish v2 funktionierte es einigermaßen gut: Ich verwendete die statische Methode WorkManagerFactory.createWorkManager (String poolName), die mir einen WorkManager gab, mit dem ich eine Arbeit mit startWork (Work) starten konnte. In GlassFish v3.0.1 wurde die API geändert: In WorkManagerFatory gibt es keine statische createWorkManager() -Methode mehr, und der createWorkManager benötigt 2 zusätzliche Parameter: einen Ressourcenadapternamen und einen ClassLoader. Ich bin verwirrt: Wie soll ich jetzt einen WorkManager bekommen ??

Ich versuchte, die WorkManagerFactory mich und rufen createWorkManager(), aber ich erhalte die folgende Ausnahme zu instanziiert:

ist ein Fehler aufgetreten während der Instanziierung des Arbeits Manager für Ressourcen-Adapter [JMSRA] java.lang. Nullpointer bei com.sun.enterprise.connectors.work.WorkManagerFactory.getConnectorRuntime (WorkManagerFactory.java:202) bei com.sun.enterprise.connectors.work.WorkManagerFactory.createWorkManager (WorkManagerFactory.java:122)

Die verfügbare Dokumentation zu diesem Thema ist sehr selten, um es gelinde auszudrücken ... so wird jede Hilfe sehr geschätzt.

Antwort

1

Für was es wert ist, habe ich am Ende Spring TaskExecutor API, die den Vorteil hat, lassen Sie mich wählen, welche Implementierung zu verwenden. Klappt wunderbar.

Die Schnittstelle war nah genug an WorkManager, so dass ich sehr wenig Änderungen im Code vornehmen musste.