EAR

2013-02-05 16 views
5

olarak paketlendiğinde WAR içindeki bir CDI Olayını gözlemlemek mümkün Bazı web modüllerinin (WAR) yanı sıra çoklu arka uç modülleri (EJB) içeren bir Kurumsal Uygulama Arşivi (EAR) var.EAR

Olay arka uç modüllerinin birinin içine ateş alır:

@Inject private Event<MyEvent> myEvent; 
... 
public void fireEvent() { 
    myEvent.fire(new MyEvent()); 
} 
... 

Böyle kodu ile diğer arka uç modüllerinden birinde görülebilir:

public void listener(@Observes MyEvent myEvent) { 
.. 
} 

Ama yapamam SAVAŞLAR içindeki etkinliği al. Bu, sınıf yükleyicinin görünürlüğü (WAR sınıfları EJB'lere görünmez) yüzünden mi yoksa CDI bunu halledmeli mi?

Uygulama geniş etkinlikleri için CDI kullanılamıyorsa, alternatifler nelerdir?

  • JMS
  • Guava EventBus
  • ...

CDI ile çalışan bir şey var mı? Belki de olayları SAV'lara bağlayan bazı CDI uzantısı?

----------- DÜZENLEME:

Bunların aynı SAVAŞ içine ateş durumunda olayı gözlemlemek mümkün. Ayrıca, sorunsuz bir olay dinleyicisi olarak @Stateless bean kullanmayı denedim. (Olay burada kovuluyor)

  • KULAK
    • SAVAŞ (olay burada dikkat edilmelidir)
    • SAVAŞ
    • EJB:

      Ambalaj böyledir

+0

sahip bir '/ WEB-INF/beans.xml' –

+0

evet .. beans.xml dosyaları yerinde bulunmaktadır. – psartini

+0

Lütfen, WAR olay dinleyicilerini (örneğin, bunları nasıl hazırladığınız ve kullandığınızı anlamak için bir şeyler) gönderebilir misiniz, belki de CDI, fasulye örneklerinizin farkında değil ...). Ayrıntılı bir ambalaj açıklaması da yardımcı olabilir. –

cevap

3

Bazı araştırmalardan sonra onun beklenen davranışlar, çünkü WAR sınıfları EJB'lere görünmez.

Daha iyi düşünmek bu iyi bir şeydir - kümelenmiş bir ortamda CDI olayı, yalnızca olayın tetiklendiği EJB modülü ile aynı düğüm üzerinde çalışan WAR tarafından alınabilir. Ancak kullanıcıların görüntülediği güvenilir güncelleme için, her durumda onu almamız gerekir. JMS veya başka bir mesajlaşma sistemi bu durumda açıkça görülmesi gereken bir yöntemdir. da CDI < için kullanılabilen bir CDI Uzatma var -> köprüleme JMS: SAVAŞ dosyasını sende Mutlaka Seam3 JMS

İlgili konular