在 JBoss 5.1 中以编程方式确定 JNDI 根上下文/耳朵名称

Posted

技术标签:

【中文标题】在 JBoss 5.1 中以编程方式确定 JNDI 根上下文/耳朵名称【英文标题】:Programmatically determining JNDI root context / ear name in JBoss 5.1 【发布时间】:2011-05-05 07:24:53 【问题描述】:

JBoss 5.1 中 EJB 的默认 jndi 上下文是“earname/ejbname/local”。在某些注入不可用的情况下,我需要手动进行 jndi 查找,但是如果我的 ejb jar 文件打包在不同的 EAR 中,我希望有一种可移植的方式来维护查找帮助程序类。

我知道有一种方法可以做到这一点,因为我以前见过,但现在找不到。我想以编程方式查找当前的应用程序名称或耳朵名称。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我知道有一种方法可以做到这一点,因为我以前见过,但现在找不到。我想以编程方式查找当前的应用程序名称或耳朵名称。

我不知道有任何明显的方法可以做到这一点(并不是说这是不可能的,尽管我认为应用程序名称或耳朵名称更像是“部署者”角色问题),我的建议是:

使用jboss.xml~或~覆盖默认的JNDI名称 从您的服务定位器中读取一个属性文件(并让您的构建系统生成它)

另见

Get ear name

【讨论】:

谢谢,我知道这些替代方案,但这并不能真正解决我的问题。【参考方案2】:

通过 jboss 6.1 的反复试验发现:

    InitialContext ic = new InitialContext();
    String moduleName = (String) ic.lookup("java:module/ModuleName");
    String appName = (String) ic.lookup("java:app/AppName");

【讨论】:

以上是关于在 JBoss 5.1 中以编程方式确定 JNDI 根上下文/耳朵名称的主要内容,如果未能解决你的问题,请参考以下文章

JNDI 路径 Tomcat 与 Jboss

在 Windows 中以编程方式确定电源使用情况?

在 Darwin/OSX 中以编程方式确定进程信息

在 VBA 中以编程方式确定 OnClick 事件的事件处理程序

在Darwin / OSX中以编程方式确定流程信息

JNDI 在 JMS 中使用 JBoss 查找错误