【发布时间】:2017-01-09 10:25:09
【问题描述】:
我在单例的 preDestroy 方法中访问无状态 EJB 时遇到问题。我需要在数据库表中记录应用程序服务器的关闭。
这就是单例的样子:
@Startup
@Singleton
public class ServerShutdown {
@EJB
TableFacade tableFacade;
@PreDestroy
private void shutdown() {
TestEntity e = tableFacade.find("test");
//do something
}
}
这里是无状态bean的示例代码:
@Stateless
public class TableFacade {
...
public TestEntity find(String test) {
Query query =
getEntityManager().createNamedQuery("TestEntity.namedQuery");
return (TestEntity) query.getSingleResult();
}
}
如果服务器正在关闭,则访问 preDestroy 方法并调用 EJB 方法。但是在调用过程中,服务器似乎强制关闭进程,取消了EJB方法的调用。
我正在使用 Java EE 6、JDK 1.8、EJB 3.1、eclipselink 2.5.2。
提前致谢
【问题讨论】:
-
Errrr 你的问题是......?
标签: java jakarta-ee ejb-3.1