2011-04-29 29 views
6

首先讓我說明下面的代碼示例在GF 3.0.1中工作得很好。當我們切換到GF 3.1時,麻煩就開始了。如何在Glassfish 3.1中結合@Asynchronous和Weld/CDI事件和@Observes(在= TransactionPhase.AFTER_COMPLETION期間)

我使用的方法

@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?

+0

可能是一個錯誤。嘗試報告。 – Bozho 2011-04-29 13:59:20

+0

在Seam/Weld論壇上也發佈了它,似乎沒有人對此感興趣,因此我在一週前將它提交給了Glassfish Bugtracker,我們將看看是否有任何結果。如果任何人有類似的問題,這是跟蹤器的URL:http://java.net/jira/browse/GLASSFISH-16513 – Michael 2011-05-09 14:13:18

+0

我會直接向Weld報告。 Glashfish使用Weld作爲其CDI實現。 – Bozho 2011-05-09 14:30:05

回答

3

根據你發佈的link作爲你自己問題的評論,這是一個在Wield 1.1.2和GlassFish 3.1.2(build 14+)中修復的bug。

disclamer:我發佈了這個答案的老問題,以幫助SO(StackOverflow)擺脫未解決的問題。

相關問題