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

哪个JNDI数据源名称在Wildfly和WebSphere上都适用?

充栋
2023-03-14

我有一个Java/Spring web应用程序,它需要作为war文件部署在Wildfly和Websphere上

应用程序正在使用具有JNDI名称的datasource:


    public DataSource dataSource() {
        final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
        dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource("jdbc/myDS");

        return dataSource;
    }

但Wildfly JNDI名称必须以“java:/”或“java:jboss/”开头

更改webconfig.java可以完成以下工作:

DataSource dataSource = dsLookup.getDataSource("java:/myDS");

哪个JNDI数据源名称在Wildfly和Websphere上都可以使用(可能在其他应用服务器上也可以吗?)

共有1个答案

常炯
2023-03-14

如果您使用资源引用来进行查找,那么在Liberty和Wildfly中,它们都是相对于java:comp/env的。

定义数据源有两种方法。一种是使用javax.annotation.Resource注释。这可以用于类型、方法或字段定义。

您还可以在web.xml或ejb-jar.xml中使用resource-ref元素来完成此操作:

<resource-ref>
    <description />

    <res-ref-name>myRef</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

如果在应用程序代码中提供用户ID/密码,则res-auth元素应包含application

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

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

  • 我有一个遗留的 EJB 2 应用程序,我将其部署到 Websphere 8.5 中。该应用程序具有依赖关系,这些依赖关系定义了与数据源的 JNDI 绑定.xml和 /元.xml数据源.xml 我不允许更改这些依赖项中的代码,也不能更改Websphere的配置。但我可以更改jar文件中的配置文件。 我想在我的应用程序中覆盖有效的JNDI绑定。是否可以定义一个将添加到Ear的文件来覆盖这些绑定? ej

  • 我部署了两只耳朵,其中一只我无法使用。有一个文件application-web-bnd.xml,其中引用了数据源 在我的server.xml文件中,我定义了datasource 在我没有访问权限的代码中,有一个staralContext java:comp/env/jdbc/db。 对数据源的引用存在,但数据源不存在。我无法访问 web.xml以创建参考 。我不知道如何覆盖它。 你能帮忙吗? 我的

  • nameNotFoundException:无法解析“localds”。已解决“”;剩余名称“localds” 有谁能帮忙吗。我遵循了这个stackOverflow问题Tomcat vs Weblogic JNDI查找中的说明,但没有任何成功。

  • 我正在用Hibernate和Websphere application Server 8.0开发一个应用程序。 我已经在Websphere中创建了一个数据源,它可以成功地与数据库连接。 但从应用程序我得到以下错误: 系统错误创建会话:org。冬眠服务jndi。JndiException:无法查找JNDI名称[java:comp/env/jdbc/OracleDS] 以下是我所做的设置: Websp