【发布时间】:2014-01-31 10:49:09
【问题描述】:
Java EE 7 中引入了并发实用程序 (JSR 236)。
有什么方法可以将我的 EJB 注入 Runnable/Callable 对象?
特别是我想要这样的东西:
带有业务逻辑的ejb
@LocalBean
public class MyEjb {
public void doSomeStuff() {
... do some stuff ...
}
}
我想在其中注入 MyEjb 实例的可运行/可调用类
public class MyTask implements Runnable {
@EJB
MyEjb myEjb;
@Override
public void run() {
...
myEjb.doSomeStuff();
...
}
}
启动新任务的对象
@Singleton
@Startup
@LocalBean
public class MyTaskManager {
@Resource
ManagedExecutorService executor;
@PostConstruct
void init() {
executor.submit(new MyTask());
}
}
MyTask 中的myEjb 字段始终为空。我想这可以帮助 JNDI 查找,但是有什么正确的方法可以做到这一点吗?
【问题讨论】:
-
谷歌搜索了一下,似乎你应该能够做到。示例:martinsdeveloperworld.wordpress.com/2014/02/25/…。但正如在另一条评论中已经说过的,您需要让服务器处理任务创建。
标签: java concurrency dependency-injection java-ee-7