É possível observar um Evento CDI dentro de um WAR quando empacotado como EAR
Eu tenho um Enterprise Application Archive (EAR) contendo vários módulos de back-end (EJB), bem como alguns módulos da web (WAR).
O evento é acionado dentro de um dos módulos de backend:
@Inject private Event<MyEvent> myEvent;
...
public void fireEvent() {
myEvent.fire(new MyEvent());
}
...
Pode ser observado em qualquer um dos outros módulos de backend com código como este:
public void listener(@Observes MyEvent myEvent) {
..
}
Mas não consigo recuperar o evento dentro dos WARs. Isso é devido à visibilidade do carregador de classes (as classes do WAR não são visíveis para os EJBs) ou o CDI deve lidar com isso?
Se o CDI não puder ser usado para eventos em todo o aplicativo, quais são as alternativas?
JMSGuava EventBus...Existe alguma coisa que funcione com o CDI? Talvez alguma extensão CDI que liga os eventos aos WARs?
----------- EDITAR:
Eu posso observar o evento se ele for disparado dentro do mesmo WAR. Também tentei usar um bean @Stateless como ouvinte de evento sem sucesso.
Embalagem é assim:
ORELHAWAR (evento deve ser observado aqui)GUERRAEJB (evento é demitido aqui)