我有应用程序逻辑在@RequestScoped bean中编写协议文件。我想在@SessionScoped bean到期之前编写协议。
@SessionScoped
class Anybean implements Serializable {
@Inject
private ProtocolBean protocolBean;
@PreDestroy
private void writeFinalProtocol() {
protocolBean.writeProtocol();
}
}
我收到错误:WELD-000019销毁实例Managed Bean时出错。通常不允许从@PreDestroy调用其他bean吗?
答案 0 :(得分:1)
好的我发现:只要我将ProtocolBean更改为@SessionScoped或@ApplicationScoped,一切正常。看起来好像你不能用@PreDestroy方法实例化一个RequestScoped bean并在其上调用一个方法。
底层异常是:com.sun.jdi.InvocationException发生了调用方法