6

首先让我声明,以下代码示例在 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时间。

我试图在焊接论坛上寻求帮助,但到目前为止无济于事,尽管似乎还有其他人有同样的问题:http ://seamframework.org/Community/WeldUsers

我至少想知道:这是一个错误,还是这是想要的。这是否意味着 Weld 不适用于异步方法/AFTER_COMPLETION 属性?为什么这在 GF 3.0.1 中有效?有没有人设法在 GF 3.1 上完成这项工作?

4

1 回答 1

3

根据您作为对自己问题的评论发布的链接,这是在 Wield 1.1.2 和 GlassFish 3.1.2(构建 14+)中修复的错误。

免责声明:我将这个答案发布到一个古老的问题,以帮助 SO(StackOverflow)摆脱未回答的问题。

于 2013-08-13T21:12:59.730 回答