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

WAS 7中的JNDI-JDBC资源查找失败

齐栋
2023-03-14

我的代码无法使用JNDI查找JDBC资源。我得到以下异常:

[根异常是javax.naming.nameNotFoundException:context:ppp-14415node01cell/nodes/ppp-14415node01/servers/server1,name:jdbc/admincob:未找到名称admincob中的第一个组件。[根异常是org.omg.cosnaming.namingContextPackage.notFound:idl:omg.org/cosnaming/namingContext/notFound:1.0]]

我已经遵循了这2个解决方案,但仍然不起作用

    <virtual-host name="default_host" />
<resource-ref name="jdbc/dbcob" binding-name="jdbc/admincob" />
    <resource-ref>
    <description>
Datasource connection to db</description>
    <res-ref-name>jdbc/dbcob</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

查找代码:

       Context initialContext = new InitialContext();

        DataSource datasource = (DataSource) initialContext
                .lookup("java:comp/env/jdbc/dbcob");
        if (datasource != null) {
            result = datasource.getConnection();
            System.out.println("Data connection retrieved");
            result.close();
        } else {
            System.err.println("Failed to lookup datasource.");
        }

我不知道我错过了什么。请帮忙。

共有1个答案

仉明知
2023-03-14

在web.xml描述符中尝试类似的操作:

<resource-ref>
    <description>Datasource connection to db</description>
    <res-ref-name>jdbc/dbcob</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    <lookup-name>jdbc/admincob</lookup-name>
</resource-ref>
 类似资料:
  • 例外的是,我必须在这个库中创建一个通过JNDI查找jdbc数据源的新类。 为此,下面是我的代码: 所有上下文都没有问题地实例化了。但是当它查找jdbc数据源时,我有一个例外:在上下文中找不到名称jdbc 我们不是在一个webapp,这是一个问题吗?是否可以使用ResourceLink声明context.xml?怎么做? 注意:jndi是在server.xml(GlobalNamingResourc

  • 我是JavaEE6和JNDI新手,所以如果我的问题看起来微不足道,请原谅我 我已经添加了一个自定义资源Glassfish 3.1.2 JNDI资源通过该管理控制台: 共同任务- JNDI名称:someNumber 现在,我希望在作为ear部署到glassfish服务器的JavaEE应用程序中查找此资源。我试过这个,但运气不好: 我一直得到一个NameNotFoundExcema。你能告诉我我做错了

  • 如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含

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

  • 在使用资源引用从服务器上下文获取数据源连接时,我收到了JNDI查找错误。请注意,如果我不使用,则“查找”是有效的。 javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE

  • 问题:似乎无法通过spring在Webphsere服务器中执行jndi查找EJB3。一直找不到我的jndi名称。我看不出我做错了什么。对于Websphere,您是否必须为jndi名称查找添加不同的内容? 堆栈溢出参考问题-EJB3注入Springbean 版本: Spring版本:4.1.2 WebSphereServer版本:7.0.0.27 Spring错误: 创建名为'myLocalEjb'