Antes que nada permítanme decirles que el siguiente ejemplo de código funcionó bien en GF 3.0.1. Los problemas comenzaron cuando cambiamos a GF 3.1.¿Cómo puedo combinar @Asynchronous y Weld/CDI Events y @Observes (durante = TransactionPhase.AFTER_COMPLETION) en Glassfish 3.1
estoy usando un método
@Asynchronous
public void executeFlowStep(
@Observes(during=TransactionPhase.AFTER_COMPLETION)
ExecuteFlowStepEvent executeFlowStepEvent) {
Desde el cambio, siempre que éste deba recibir una ExecuteFlowStepEvent
me sale el siguiente mensaje de error:
WELD-000401 Failure while notifying an observer of event [package].ExecuteFlowStepEvent
No existen más datos o StackTrace se da. Funciona si elimino la anotación @Asynchronous
y el atributo AFTER_COMPLETION
, por supuesto, esto rompe el programa ya que dependo del tiempo AFTER_COMPLETION
.
traté de pedir ayuda en los foros de soldadura, hasta ahora sin éxito, aunque parece que hay otras personas con el mismo problema: http://seamframework.org/Community/WeldUsers
yo por lo menos me gustaría saber: Es ésta una error, o es esto querido. ¿Esto implica que Weld NO funciona con los métodos asincrónicos/atributos AFTER_COMPLETION? ¿Por qué funcionó esto en GF 3.0.1? ¿Alguien ha logrado que esto funcione en GF 3.1?
podría ser un error. intenta informarlo. – Bozho
Publicado también en los foros de Seam/Weld, nadie parece estar interesado allí, así que lo envié al Glassfish Bugtracker hace una semana, veremos si surge algo de eso. Si alguien tiene problemas similares, esta es la URL del rastreador: http://java.net/jira/browse/GLASSFISH-16513 – Michael
Lo reportaría directamente a Weld. Glashfish utiliza Weld como su implementación de CDI. – Bozho