【发布时间】:2018-08-20 15:15:28
【问题描述】:
我有一个旧版 EJB 2 应用程序,我将它部署到 Websphere 8.5。该应用程序具有依赖项,这些依赖项定义 JNDI 绑定到 /META-INF/ejb-jar.xml 和 /META-INF/ibm-ejb-jar-bnd.xml 中的数据源。
我不能更改这些依赖项中的代码,也不能更改 Websphere 的配置。但我可以更改 jar 文件中的配置文件。
我想在我的应用程序中覆盖有效的 JNDI 绑定。是否可以定义一个将添加到 Ear 的文件以覆盖这些绑定?
ejb-jar.xml的sn-p:
<resource-ref id="ResourceRef_1248968390265">
<res-ref-name>jdbc/CentralDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
ibm-ejb-jar-bnd.xml:
<session name="FooJob">
<resource-ref name="jdbc/CentralDS" binding-name="jdbc/VeryCentralDs" />
</session>
是否可以在某处覆盖此 JNDI 名称 (VeryCentralDs)?
【问题讨论】:
-
不确定您到底需要什么? web.xml resource-ref/res-ref-name 在您的代码中引用,ibm-web-bnd.xml 用于与 WAS 服务器定义的 JNDI 资源绑定:web-bnd/resource-ref.name(列出在 web.xml 中),它的 resource-ref.binding-name 定义为 WAS JNDI 资源
标签: java ejb websphere jndi ear