我有应用程序逻辑在 @RequestScoped bean 中编写协议(protocol)文件。我想在 @SessionScoped bean 过期之前编写协议(protocol)。
@SessionScoped
class Anybean implements Serializable {
@Inject
private ProtocolBean protocolBean;
@PreDestroy
private void writeFinalProtocol() {
protocolBean.writeProtocol();
}
}
我收到错误:WELD-000019 销毁实例托管 Bean 时出错。通常不允许从@PreDestroy 调用其他bean 吗?
最佳答案
好的,我发现:一旦我将 ProtocolBean 更改为 @SessionScoped 或 @ApplicationScoped 一切正常。似乎您无法在 @PreDestroy 方法中实例化 RequestScoped bean 并在其上调用方法。
底层异常是:com.sun.jdi.InvocationException 发生调用方法
关于cdi - 从@PreDestroy 方法调用@RequestScoped Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151895/