我对 bean 生命周期有疑问,我不明白。我的战争中有一个@SessionScoped bean:
@Named
@SessionScoped
public class UserBean implements Serializable {
@Inject
UserServicesLocal userServices;
[...]
}
然后是 ejb 部分中的 @Staseful 会话 bean:
@Stateful
@LocalBean
@SessionScoped
@ExcludeDefaultInterceptors
public class UserServices implements UserServicesLocal, Serializable {
[...]
}
他们玩得很好,但是当在 ejb 部分中生成未经检查的异常时,SFSB “死”。我知道这是预期的行为,但我不明白如何处理这种情况。例如:用户进入一个可以上传 xls 文件的页面,上传一个文件,然后文件处理由于某种奇怪的原因而失败。未捕获“WeirdReasonException”,SFSB 消失,并且每个后续调用都会生成“javax.ejb.NoSuchObjectLocalException:EJB 不存在”。我知道我应该避免留下未捕获的异常,但如果有一些奇怪的事情通过,我认为用户应该能够继续他的工作。有没有办法“强制”重新创建 SFSB?
谢谢