【问题标题】:NameNotFoundException mapping JNDI Datasource to Local nameNameNotFoundException 将 JNDI 数据源映射到本地名称
【发布时间】:2012-07-16 23:44:19
【问题描述】:

我无法将 Weblogic (12c) 定义的 JNDI 数据源映射到本地 jndi 名称。

我在 weblogic mysql 数据源中有一个数据源定义为“mysqltestds”,我想将 Web 应用程序中的 i 映射到本地名称“localds”

我的 web.xml 属性是

<resource-ref>
   <res-ref-name>localds</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

使用 weblogic.xml

<weblogic-web-app>
   <resource-description>
      <res-ref-name>localds</res-ref-name>
      <jndi-name>mysqltestds</jndi-name>lls
   </resource-description>
</weblogic-web-app>

当我使用全局名称“mysqltestds”获取数据源时,它可以正常工作。

Context initialContext = new InitialContext();
Object resource = initialContext.lookup("mysqltestds");
dataSource = (DataSource) resource; 

但是,当我尝试“localds”时,它失败并出现错误:

Context initialContext = new InitialContext();
Object resource = initialContext.lookup("localds");
dataSource = (DataSource) resource; 

javax.naming.NameNotFoundException:无法解析“localds”。解决 '';剩下的名字'localds'

谁能帮忙。我按照这个 stackOverflow 问题 Tomcat vs Weblogic JNDI Lookup 中的说明进行操作,但没有成功。

【问题讨论】:

    标签: java jndi weblogic12c


    【解决方案1】:

    几件事。
    首先要检查的是确保您实际将数据源部署到您正在访问的服务器。因为如果你没有,你会得到那个确切的信息。

    如果您在控制台中查看,请转到服务器页面并单击您正在使用的服务器。

    然后页面上有一个名为 jndiViewer 之类的链接,您应该能够浏览您的数据源以确认其位置。

    【讨论】:

    • 我知道它已部署,因为如果我使用 weblogic JNDI 名称(“mysqltestds”)它可以工作。另外,我可以在 JNDI 查看器中看到它。
    【解决方案2】:

    我最终通过反复试验解决了这个问题。

    似乎当您使用本地资源引用时,您必须使用“java:comp/env/..”前缀来引用它,所以当我进行以下更改时,我的 java 代码可以工作:

    Context initialContext = new InitialContext();
    Object resource = initialContext.lookup("java:comp/env/localds");
    dataSource = (DataSource) resource; 
    

    如果其他人遇到类似问题,希望这很有用

    【讨论】:

      【解决方案3】:

      与这个错误相关的话题真的不多,最近从旧的Jboss版本迁移到WildFly 10时遇到了它。

      我发现我可以通过 server.log 查找正确的字符串以在 lookup 中使用。

      【讨论】:

        猜你喜欢
        • 2016-03-20
        • 2012-03-08
        • 1970-01-01
        • 2020-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 1970-01-01
        相关资源
        最近更新 更多