3
如果在DStateless.method4()
或BSession.method2()
中發生錯誤,在以下情況下會發生什麼情況?我希望CStateless.method3()
和DStateless.method4()
共享相同的事務。如果SessionScoped和無狀態方法調用混合,交易會發生什麼
是否允許在EJB 和 CDI 做出這樣的電話?
ASession.method1() (calls)-> CStateless.method3() -> BSession.method2() -> DStateless.method4();
@SessionScoped
class ASession {
method1();
}
@SessionScoped
class BSession {
method2();
}
@Stateless
class CStateless {
method3();
}
@Stateless
class DStateless {
method4();
}
在這種情況下,他們將共享相同的交易。唯一的問題是你爲什麼要從無狀態bean中調用sessioncoped bean – maress
@maress主要原因是sessionScoped bean會進行一些文件操作。另一個原因是會話scoped bean有更多關於做什麼的信息。 – Tony
這仍然不能保證來自無狀態bean的sessionscoped bean調用。在需要會話/請求上下文的會話bean中執行所有操作,然後將下一個邏輯上傳到無狀態bean。會話bean可能會調用幾個無狀態bean來完成其工作 – maress