我在一个带有两个 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 中找到包含应用程序或模块名称的条目,但没有找到任何条目。
- 如何从应用程序服务器获取应用程序名称?
- 模块名称?
- 还有比 JNDI 更好的方法吗?
提前致谢。
最佳答案
我能想到的应用程序级别的一种方法是指定 <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>
然后您可以使用 java:comp/env/AppName
通过 JNDI 查找该值.
关于java - WebSphere 7 中通过 JNDI 的应用程序和模块名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135800/