应用程序和模块名称通过WebSphere 7中的JNDI

时间:2013-08-08 20:46:21

标签: java java-ee jndi websphere-7

我在一个带有两个Web模块的单元中有一个EAR应用程序,每个Web模块都有一个servlet。

当我请求每个servlet时,我想通过JNDI获取应用程序和模块名称。

我尝试过:

String applicationName = (String) new InitialContext()
    .lookup("java:app/AppName");

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

没用。在 java:中找不到 app 模块

我在网页中找到了这个例子,也许这适用于WebSphere 8但不适用于7。

我试图在 java:comp / env 中找到包含应用或模块名称的条目,但我没有找到任何条目。

  • 我如何从Application Server获取应用程序名称?
  • 模块名称?
  • 有比JNDI更好的方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我能想到的应用程序级别的一种方法是在应用程序的web.xml中指定<env-entry>。 Websphere将要求您指定部署的值,但它将使用您在web.xml中放置的任何内容作为默认值。

例如:

<env-entry>
    <env-entry-name>AppName</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>MyApp</env-entry-value>
</env-entry>

然后,您可以使用java:comp/env/AppName通过JNDI查看此值。