4

我有应用程序逻辑在 @RequestScoped bean 中编写协议文件。我想在 @SessionScoped bean 过期之前编写协议。

@SessionScoped
class Anybean implements Serializable {

@Inject
private ProtocolBean protocolBean;

@PreDestroy
private void writeFinalProtocol() {
    protocolBean.writeProtocol();

}

}

我收到错误:WELD-000019 销毁实例托管 Bean 时出错。通常不允许从@PreDestroy 调用其他bean 吗?

4

1 回答 1

1

好的,我发现:一旦我将 ProtocolBean 更改为 @SessionScoped 或 @ApplicationScoped 一切正常。似乎您无法在 @PreDestroy 方法中实例化 RequestScoped bean 并在其上调用方法。

底层异常是:com.sun.jdi.InvocationException 发生调用方法

于 2013-06-18T14:03:59.607 回答