【问题标题】:ApplicationRollBackException not shown in primefaces messagesPrimefaces 消息中未显示 ApplicationRollBackException
【发布时间】:2017-03-03 20:27:56
【问题描述】:

目前,我的一个无状态类正在抛出一个带有 applicationException 注释且 rollback=true 的异常。此异常在 bean 类中被捕获并成功添加到 faces 消息中,但由于某种原因未显示。

我的设置: bean->service(在这里抛出异常) - 好的 bean->service->service(扔在这里)-失败

bean 注释为: @命名 @ViewScoped(全方位)

虽然服务是无状态的。

似乎会话在第二个服务上丢失了。知道为什么吗?

这是我的异常类:

@ApplicationException(rollback = true)
public class BusinessException extends Exception

【问题讨论】:

  • 你声明“这个异常被bean类捕获并成功添加到faces消息中,”。您只能将文本添加到 faces 消息而不是完整的异常,因此这与异常无关。也许您对此类错误进行了“重定向”,并且消息无法生存。请创建一个minimal reproducible example。您现在发布的信息量只会导致猜测。
  • 如果您使用 h:messages 而不是 PrimeFaces 是否有效?

标签: primefaces ejb stateless


【解决方案1】:

解决方案似乎很奇怪注意:BusinessException 扩展了异常,所以在我的代码中我有:

try {
   //..
} catch (Exception e) {
  messages.error(e.getMessage());
}

但这不起作用,但这样做:

try {
   //..
} catch (BusinessException e1) {     
  messages.error(e1.getMessage());
} catch (Exception e) {
  messages.error(e.getMessage());
}

这个想法是捕捉 BusinessException 本身而不是它的父级。但我不知道为什么会这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多