1
我有一個無狀態會話Bean(Java EE 6的,CDI),它拋出事件事件在@Stateless EJB
@Stateless
public class CustomerService {
@Inject @ErrorMessage Event<BaseEvent> errMsg;
//[...]
public Customer getCustomer(String username, String password) {
Customer cust = null;
try {
//[...]
} catch (Exception ex) {
errMsg.fire(new BaseEvent("user not found [username="+username+"]"));
}
這個bean是一個EJB模塊的一部分。另一方面,我有兩個事件觀察員在聽這些事件。它們看起來像
public void showErrorMessage(@Observes @ErrorMessage BaseEvent event) {
//do something with the event.
}
一個觀察者也在ejb模塊中。另一名觀察員在戰爭模塊中。 「ejb」-observer不會接收這個電話。
如果無法從ejb-module發送事件到war模塊?
注意:從war-module到ejb-module是可能的。
你爲什麼要分開這些類?既然你使用的是JEE 6,你可以在WEB-INF/classes下找到所有的東西。 –
我需要JMS在這部分的應用程序,據我所知。 JMS不能在「web」項目中工作。糾正我,如果我錯了 – h2mch
對不起,遲到的迴應 - 取決於你的意思是「網絡項目」。如果您引用了使用Web配置文件(這是應用程序服務器上一組縮減的API),那麼這是正確的,JMS不是其中的一部分。但是如果你有一個標準的JEE--完整的配置文件,你可以將所有的東西打包到一個WAR中(不管你是真的有一個Web應用程序還是一個後端應用程序),然後你就不必分開EJB和其他代碼。 –