[英]Java invoke EJB from servlet
我有一個servlet,我想根據servlet獲取的參數動態調用它的EJB對象。
調用EJB對象和方法的最佳方法是什么?
更新 :例如,我得到的參數是sessionBean的名稱,所以我想調用它(通過它的名字),然后調用它內部的一些方法,因此它將動態創建。
提前致謝。
您可以通過JNDI查找來完成此操作。
InitialContext ic = new InitialContext();
MyEJB ejb = (MyEJB) ic.lookup("java:comp/env/MyEJB");
這將檢索MyEJB的遠程接口,只需根據servlet參數創建查找字符串。 如果您對方法一無所知,則應使用反射來查找。
在沒有一系列@EJB
注入的情況下獲得此結果的最簡單方法是使用查找。 假設您已經發現需要EJB1的實例,查找代碼將如下所示:
private EJB1 ejb1 = null;
try {
InitialContext ic = new InitialContext();
ejb1 = (EJB1)
ic.lookup(ejb1.class.getName());
ejb1.method1();
} catch (Exception ex) {
logger.log(Level.SEVERE,"Couldn’t create converter bean.",ex);
}
檢查我們服務器的示例,了解在創建InitialContext和查找調用時使用的確切語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.