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 本身而不是其父级。但是不知道为什么。
目前我的一个无状态 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 本身而不是其父级。但是不知道为什么。