1

我有一个 servlet,我想根据 servlet 获取的参数从它动态调用 EJB 对象。

调用 EJB 对象和方法的最佳方式是什么?

更新:例如,我得到的参数是 sessionBean 的名称,所以我想调用它(通过它的名称),然后在其中调用一些方法,因此它将被动态创建。

提前致谢。

4

2 回答 2

3

您可以通过JNDI查找来执行此操作。

InitialContext ic = new InitialContext();
MyEJB ejb = (MyEJB) ic.lookup("java:comp/env/MyEJB");

这将检索 MyEJB 的远程接口,只需根据 servlet 参数创建查找字符串。如果你对方法一无所知,你应该使用反射来找出答案。

于 2012-07-15T11:46:28.670 回答
0

在不进行一系列@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 和查找调用时使用的确切语法。

于 2012-07-15T11:49:08.333 回答