Primefaces 消息中未显示 ApplicationRollBackException

ApplicationRollBackException not shown in primefaces messages

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

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

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

而服务是无状态的。

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

这是我的例外情况 class:

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

解决方案看起来很奇怪,请注意:BusinessException extends Exception,所以在我的代码中我有:

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

但这行不通,但这样做:

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

想法是捕获 BusinessException 本身而不是其父级。但是不知道为什么。