【发布时间】:2011-04-29 13:35:36
【问题描述】:
首先让我声明,以下代码示例在 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 不适用于异步方法/AFTER_COMPLETION 属性?为什么这在 GF 3.0.1 中有效? 有没有人设法在 GF 3.1 上完成这项工作?
【问题讨论】:
-
可能是一个错误。尝试举报。
-
也在 Seam/Weld 论坛上发布过,似乎没有人对此感兴趣,所以我在一周前将其提交给 Glassfish Bugtracker,我们将看看是否有任何结果。如果有人有类似的问题,这是跟踪器的 URL:java.net/jira/browse/GLASSFISH-16513
-
我会直接向 Weld 报告。 Glashfish 使用 Weld 作为其 CDI 实现。
-
自从这个线程存在以来已经有几年了。任何人都知道这个问题是否仍然存在于 GlassFish 4 中?
-
刚发现阅读了迈克尔发布的 jira-link,这确实是在 Wield 1.1.2 和 GlassFish 3.2.1(构建 14+)中修复的错误。
标签: events asynchronous jakarta-ee cdi jboss-weld