我需要从 GlassFish 服务器中的 servlet 启动后台任务,并且我认为 WorkManager 是一种与 Java EE 兼容的方式来实现这一点。
以前在 Glassfish v2 中它工作得相当好:我使用了静态方法 WorkManagerFactory.createWorkManager(String poolName),它给了我一个 WorkManager,我可以用它来启动一个带有 startWork(Work) 的工作。
在 GlassFish v3.0.1 中,API 发生了变化:WorkManagerFatory 中不再有静态 createWorkManager() 方法,并且 createWorkManager 采用 2 个额外参数:资源适配器名称和 ClassLoader。我很困惑:我现在应该如何获得 WorkManager?
我尝试自己实例化 WorkManagerFactory 并调用 createWorkManager() 但出现以下异常:
在 com.sun.enterprise.connectors.work.WorkManagerFactory.getConnectorRuntime(WorkManagerFactory.java:202) 在 com.sun.enterprise.connectors 的资源适配器 [ jmsra ] java.lang.NullPointerException 的工作管理器实例化期间发生错误.work.WorkManagerFactory.createWorkManager(WorkManagerFactory.java:122)
至少可以说,关于这个主题的可用文档非常少......所以任何帮助都将不胜感激。