首先让我说,下面的代码示例在GF 3.0.1中运行得很好。当我们切换到GF 3.1时,麻烦就开始了。
我正在使用方法
@Asynchronous
public void executeFlowStep(
@Observes(during=TransactionPhase.AFTER_COMPLETION)
ExecuteFlowStepEvent executeFlowStepEvent) {
自切换以来,每当收到ExecuteFlowStepEvent
时,我都会收到以下错误消息:
WELD-000401 Failure while notifying an observer of event [package].ExecuteFlowStepEvent
没有给出进一步的信息或堆栈跟踪。
如果我删除@Asynchronous
注释和AFTER_COMPLETION
属性,它会起作用,当然这会依赖于AFTER_COMPLETION
时间而打破程序。
我试图在Weld论坛上寻求帮助,到目前为止无济于事,尽管似乎还有其他人遇到同样的问题:http://seamframework.org/Community/WeldUsers
我至少想知道: 这是一个错误,还是这个想要的。这是否意味着Weld不能与Asynchronous方法/ AFTER_COMPLETION属性一起使用?为什么这在GF 3.0.1中有效? 有没有人设法在GF 3.1上完成这项工作?
答案 0 :(得分:3)
根据您发布的link作为对自己问题的评论,这是在Wield 1.1.2和GlassFish 3.1.2(版本14 +)中修复的错误。
disclamer :我将这个答案发布在一个古老的问题上,以帮助SO(StackOverflow)摆脱未解答的问题。