以编程方式确定JBoss 5.1中的JNDI根上下文/ ear名称

时间:2010-11-04 20:39:36

标签: java jboss java-ee ejb-3.0 jndi

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

我知道有一种方法可以实现,因为我之前已经看过,但现在找不到它。我想以编程方式查找当前的应用程序名称或耳朵名称。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

通过试用找到& jboss 6.1的错误:

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

答案 1 :(得分:1)

  

我知道有一种方法可以实现,因为我之前已经看过,但现在找不到它。我想以编程方式查找当前的应用程序名称或耳朵名称。

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

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

另见