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

如何查找(JDBC)JNDI资源?

邢起运
2023-03-14

例外的是,我必须在这个库中创建一个通过JNDI查找jdbc数据源的新类。

为此,下面是我的代码:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource dataSource = (DataSource) envCtx.lookup("jdbc/corp.xx.xx.xxxxDS");

所有上下文都没有问题地实例化了。但是当它查找jdbc数据源时,我有一个例外:在上下文中找不到名称jdbc

我们不是在一个webapp,这是一个问题吗?是否可以使用ResourceLink声明context.xml?怎么做?

注意:jndi是在server.xml(GlobalNamingResources中的一个资源)中设置的

共有1个答案

云捷
2023-03-14
<Context ...>
  ...
  <ResourceLink name="linkToGlobalResource"
            global="simpleValue"
            type="java.lang.Integer"
  ...
</Context>

其中name是新名称(相对于java:comp/env的名称),global是server.xml中配置的全局jndi名称

因此,从代码中查找linkToGlobalResource,它将提供链接的全局资源

参考:http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#resource_links

 类似资料:
  • 我的代码无法使用JNDI查找JDBC资源。我得到以下异常: [根异常是javax.naming.nameNotFoundException:context:ppp-14415node01cell/nodes/ppp-14415node01/servers/server1,name:jdbc/admincob:未找到名称admincob中的第一个组件。[根异常是org.omg.cosnaming.n

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

  • 我们希望在单元测试中将EJB-s作为Spring组件进行测试。 使用Resources注释以查找JNDI值的EJB-s之一,如下所示: 问题是Spring似乎试图按类型查找值,即它查找java类型的bean。字符串,而不是使用JNDI。 这是我们的代码。 第一个上下文: 第二个上下文: JndiServerMock: 公共类JndiServerMock{ } JndiClientMock: 公共类

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

  • 我在我的应用程序中使用EJB3.1。 我想在我的应用程序中将一个EJB的JNDI查找名称发送到另一个应用程序,以便它可以在运行时使用它 用程序找出任意EJB的查找名的过程是什么?