併發工具(JSR 236)已經在Java EE中引入了7的Java EE 7 - 注入了Runnable/Callable對象
有什麼辦法如何注入我的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查找,但有沒有任何正確的方法如何做到這一點?
谷歌搜索一下,似乎你應該能夠做到這一點。例如:http://martinsdeveloperworld.wordpress.com/2014/02/25/using-java-ees-managedexecutorservice-to-asynchronously-execute-transactions/。但正如另一條評論所述,您需要讓服務器處理任務創建。 – Gimby