首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Stateful和@SessionScoped

@Stateful和@SessionScoped
EN

Stack Overflow用户
提问于 2015-01-30 21:22:41
回答 1查看 249关注 0票数 0

我对bean的生命周期有个问题,我不明白。在我的战争中我有一个@SessionScoped bean:

代码语言:javascript
复制
@Named
@SessionScoped
public class UserBean implements Serializable {
  @Inject
  UserServicesLocal userServices;
  [...]
}

然后是ejb部分中的@ session bean:

代码语言:javascript
复制
@Stateful
@LocalBean
@SessionScoped
@ExcludeDefaultInterceptors
public class UserServices implements UserServicesLocal, Serializable {
  [...]
}

它们发挥得很好,但是当ejb部分生成未经检查的异常时,SFSB就会“死”。我知道这是预期的行为,但我不知道如何处理这种情况。例如:用户进入一个页面,他可以上传一个xls文件,上传一个文件,然后该文件的处理由于一些奇怪的原因而失败。"WeirdReasonException“未被捕获,SFSB消失,随后的每个调用都生成一个"javax.ejb.NoSuchObjectLocalException: EJB不存在”。我知道我应该避免留下一个例外的秘密,但如果有什么奇怪的通过,我认为用户应该能够继续他的工作。有没有办法“强迫”SFSB的再创造?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-30 22:19:11

我猜"SFSB“你指的是UserServices豆。如果这是正确的,那么我就不会让bean死掉--我会将抛出未检查异常的部分包装起来,您可以在try/catch块中恢复,然后捕获RuntimeException (顺便说一句,不是例外)。记录异常并返回UI可以解释为“处理输入失败”的内容。

如果你真的能处理的话,捕获“异常”从来都不是问题。我的大部分代码在UI处理程序级别捕捉到异常,所以如果代码的核心出现意外情况,应用程序就不会死。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28244850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档