1

我在一个带有两个 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: 中找不到应用程序模块

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

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

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

提前致谢。

4

1 回答 1

2

对于应用程序级别,我能想到的一种方法是在应用程序<env-entry>的 web.xml 中指定一个。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>

然后你可以通过 JNDI 使用java:comp/env/AppName.

于 2013-08-08T21:16:35.523 回答