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

标签 java jakarta-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 中找到包含应用程序或模块名称的条目,但没有找到任何条目。

  • 如何从应用程序服务器获取应用程序名称?
  • 模块名称?
  • 还有比 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/

相关文章:

jakarta-ee - 在weblogic中发布EJB的本地接口(interface)

java - 哪些类型的循环适合在 Java 程序中重新输入答案?

java - 用Java读取Oracle时间戳并进行比较

java - 单元测试: @Inject not injecting service

java - 在 "on the fly"java图片生成中指定图片名称

tomcat - Spring MVC 无法获取在 JNDI 中配置的数据源

java - 旧 Java 项目兼容性

java - 如何将对象添加到 JPanel 中

java - 将要通过字段注入(inject) (CDI) 初始化的测试字段

java - 使用属性 load-on-startup 在 servlet init 方法中进行 JNDI 查找