Как использовать WorkManager с GlassFish 3? - PullRequest
1 голос
/ 02 декабря 2010

Мне нужно запустить фоновую задачу из сервлета на сервере GlassFish, и я подумал, что WorkManager был каким-то образом совместимым с Java EE способом для достижения этой цели.

Ранее в Glassfish v2 он работал достаточно хорошо: я использовал статический метод WorkManagerFactory.createWorkManager (String poolName), который дал мне WorkManager, который я мог бы использовать для запуска работы с startWork (Work).

В GlassFish v3.0.1 API изменился: больше нет статического метода createWorkManager () в WorkManagerFatory, а createWorkManager принимает 2 дополнительных параметра: имя адаптера ресурса и ClassLoader. Я в замешательстве: как мне теперь получить WorkManager ??

Я попытался создать экземпляр WorkManagerFactory и вызвать createWorkManager (), но получаю следующее исключение:

Произошла ошибка при создании экземпляра менеджера работы для адаптера ресурсов [jmsra] java.lang.NullPointerException в com.sun.enterprise.connectors.work.WorkManagerFactory.getConnectorRuntime (WorkManagerFactory.java:202) на com.sun.enterprise.connectors.work.WorkManagerFactory.createWorkManager (WorkManagerFactory.java:122)

Доступной документации по этому вопросу очень мало, чтобы не сказать больше ... поэтому любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 10 декабря 2010

Для чего бы это ни стоило, я в конечном итоге использовал Spring TaskExecutor API, который имеет преимущество, позволяя мне выбирать, какую реализацию использовать.Работает как шарм.

Интерфейс был достаточно близок к WorkManager, поэтому у меня было очень мало изменений в коде.

...