在 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 根上下文/耳朵名称的主要内容,如果未能解决你的问题,请参考以下文章