最初に、次のコード例は 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 Forums で助けを求めようとしましたが、これまでのところ役に立ちませんでしたが、同じ問題を抱えている人が他にもいるようです: http://seamframework.org/Community/WeldUsers
少なくとも知りたいのですが、これはバグですか、それとも望んでいますか。これは、Weld が非同期メソッド/AFTER_COMPLETION 属性で機能しないことを意味しますか? これが GF 3.0.1 で機能したのはなぜですか? GF 3.1 でこれを機能させることができた人はいますか?