【问题标题】:Lookup an EJB Implementation by jndi name通过 jndi 名称查找 EJB 实现
【发布时间】:2016-11-13 07:34:46
【问题描述】:

我是 jndi 命名空间的新手,我正在尝试通过以下代码从服务类中查找我的 EJB 类

InitialContext ctx;
        try {
            ctx = new InitialContext();
            ctx.lookup("?????");
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

但我真的不知道在查找中放什么。我知道 jndi 的名字在那里。但是我可以从哪里获得我的 ejb 类的 jndi 名称。我对这件事很陌生,真的不能花太多时间学习 JNDI。

【问题讨论】:

  • 这取决于您如何设计您的 bean,如果是本地、远程、无接口视图。因此,正确的答案是查看文档 Accessing Enterprise Beans 并尝试详细说明 bean 的 JNDI 名称。或者,更快,看看你的应用服务器的启动日志,应该有一个关于你的 bean 的 JNDI 名称的条目。

标签: ejb jndi


【解决方案1】:

参考服务器日志文件。部署 EJb bean 时。它看起来像这样

部署“xyz.ear”的部署单元子部署“sample-web-1.0.0.war”中名为 SampleImpl 的会话 bean 的 JNDI 绑定如下:

用于查找 EJB bean 的示例代码。

final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
final Context context = new InitialContext(jndiProperties);
SampleIf sif = (SampleEJBIf) context.lookup("java:app/sample-ejb-1.0-SNAPSHOT/SampleImpl");

其他定义查找路径的方法

java:global/pms/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass
java:app/pms-web-1.0.0/SampleClass!com.etipl.pms.x12.SampleClass
java:module/SampleClass!com.etipl.pms.x12.SampleClass
java:global/pms/pms-web-1.0.0/SampleClass
java:app/pms-web-1.0.0/SampleClass
java:module/SampleClass

【讨论】:

    猜你喜欢
    • 2018-10-10
    • 2012-01-24
    • 2013-02-25
    • 2013-01-30
    • 2015-01-25
    • 2016-04-09
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多