当前位置: 首页 > 知识库问答 >
问题:

Websphere更改EAR中的JNDI名称

华知
2023-03-14

我有一个遗留的 EJB 2 应用程序,我将其部署到 Websphere 8.5 中。该应用程序具有依赖关系,这些依赖关系定义了与数据源的 JNDI 绑定.xml和 /元.xml数据源.xml

我不允许更改这些依赖项中的代码,也不能更改Websphere的配置。但我可以更改jar文件中的配置文件。

我想在我的应用程序中覆盖有效的JNDI绑定。是否可以定义一个将添加到Ear的文件来覆盖这些绑定?

ejb-jar 的片段.xml:

<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)?

共有1个答案

温智明
2023-03-14

是的,可以在部署时覆盖资源引用绑定。这篇知识中心文章介绍了部署应用程序的步骤。请注意此处记录的“将资源引用映射到资源”步骤。您可以在此处填写希望绑定资源引用的目标JNDI名称。

 类似资料:
  • 环境- WAS 7.0和EJB 2.1 我有一个耳朵与EJB罐文件。它有一些远程EJB(EJB 2.1),我想转换为本地EJB。因此,我必须按照我的理解修改ejb-jar.xml。 我修改的ejb-jar xml文件如下: ,并且是本地 ejb 新添加的标记。 我的绑定文件如下 - 在部署 EAR 文件期间,我收到以下错误 - com . IBM . WebSphere . management

  • 我试图将我的小应用程序从Tomcat迁移到WebSphere。为了做到这一点,我从头开始重新构建它,分别处理主要组件。我正在纠结webSphere Liberty上的数据访问/ JNDI。我明白了 javax.naming.NameNotFoundException:javax.naming.NameNotFoundException: java: comp/env/jdbc/test SERVE

  • 在查找jdbc数据源的JNDI连接时,我遇到以下错误: javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“

  • 我正在将一个应用程序从JBoss3迁移到JBoss7。我正在使用jboss-as-7.1。1.决赛。该应用程序是一个应用程序。ear支持多个EJB。罐子和瓶子。包含所有servlet和jsp页面的war。EJB既是CMP实体bean又是会话bean,并且大量使用Xdoclet。我的应用程序构建和部署还可以,但由于JNDI问题,EJB无法正确实例化。我知道JBoss7在如何使用JNDI方面有一些变化

  • 问题内容: 我正在使用Websphere Portal 7.0并使用RAD 8.0创建一个portlet。我的portlet试图建立到远程服务器的db2连接。我在本地编写了一个Java程序来与服务器建立基本的JDBC连接,并从表中获取记录。代码工作正常;但是,当我将代码以及db2jcc4.jar添加到我的portlet时,连接不起作用。我正在使用基本的: 我认为使用Websphere数据源是正确的

  • 我有一个Java/Spring web应用程序,它需要作为war文件部署在Wildfly和Websphere上 应用程序正在使用具有JNDI名称的datasource: 但Wildfly JNDI名称必须以“java:/”或“java:jboss/”开头 更改可以完成以下工作: 哪个JNDI数据源名称在Wildfly和Websphere上都可以使用(可能在其他应用服务器上也可以吗?)