Как объединить @Asynchronous и Weld/CDI Events и @Observes(during=TransactionPhase.AFTER_COMPLETION) в Glassfish 3.1

Прежде всего позвольте мне сказать, что следующий пример кода отлично работал в 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?


person Michael    schedule 29.04.2011    source источник
comment
может быть ошибка. попробуйте сообщить об этом.   -  person Bozho    schedule 29.04.2011
comment
Разместил его также на форумах Seam/Weld, похоже, там никто не заинтересован, поэтому неделю назад я отправил его на Glassfish Bugtracker, посмотрим, получится ли что-нибудь из этого. Если у кого-то есть подобные проблемы, это URL-адрес трекера: java.net/jira/browse/ СТЕКЛЯННАЯ РЫБА-16513   -  person Michael    schedule 09.05.2011
comment
Я бы сообщил об этом непосредственно Уэлду. Glashfish использует Weld в качестве реализации CDI.   -  person Bozho    schedule 09.05.2011
comment
Прошло пару лет с тех пор, как эта ветка была жива. Кто-нибудь знает, сохраняется ли эта проблема в GlassFish 4?   -  person Martin Andersson    schedule 14.08.2013
comment
Только что узнал, читая jira-ссылку, которую Майкл опубликовал, что это действительно была ошибка, которая была исправлена ​​​​в Wield 1.1.2 и GlassFish 3.2.1 (сборка 14+).   -  person Martin Andersson    schedule 14.08.2013


Ответы (1)


Согласно ссылке, которую вы разместили в качестве комментария к собственному вопросу, это ошибка, которая исправлено в Wield 1.1.2 и GlassFish 3.1.2 (сборка 14+).

отказ от ответственности: я разместил этот ответ на давний вопрос, чтобы помочь SO (StackOverflow) избавиться от оставшихся без ответа вопросов.

person Martin Andersson    schedule 13.08.2013