【发布时间】:2013-10-14 11:15:39
【问题描述】:
我有一个 Java EE 应用程序,它使用一个外部 jar(用于记录目的),但它需要一个用于配置的 URL,该 URL 在 jar 本身中通过 JNDI 查找解析。
一些澄清示例:
LoggingLib.jar: -> LoggingFactory.java
public void resolveJndi(){
Context ctx = new InitialContext();
URL myConf = ctx.lookup('url/myConf');
}
这个库包含在实际应用程序的 EAR 文件中,并在应用程序的各个类中调用(在 web 模块、ejb 模块中,甚至在另一个带有 JPA 类的 jar 中)。
如果 jndi name 'url/myConf' 存在,一切正常:但我需要将其映射到部署时指定的个性化名称。 对于其他资源,我已经使用 ibm 绑定解决了这个问题:在部署时,系统会询问这些资源的真正 jndi 名称。这样,软件和配置之间就解耦了:应用程序将查找 java:comp/env/url/myConf 但服务器将使用它的真实名称解析它。 我尝试对 application.xml 和 ibm-application-bnd.xml 做同样的事情,但没有成功。
进行此类引用的正确方法是什么?
【问题讨论】:
标签: binding websphere jndi websphere-8