Прежде всего позвольте мне заявить, что следующий пример кода отлично работает в 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
.
I пытался попросить о помощи на форумах Weld, но безрезультатно, хотя, похоже, есть и другие люди с такой же проблемой: http://seamframework.org/Community/WeldUsers
Мне бы, по крайней мере, хотелось знать: Это ошибка или это нужно? Означает ли это, что Weld НЕ работает с асинхронными методами / атрибутами AFTER_COMPLETION? Почему это работало в GF 3.0.1? Кому-нибудь удалось сделать эту работу на GF 3.1?