gpt4 book ai didi

java - 如何查找 (JDBC) JNDI 资源?

转载 作者:行者123 更新时间:2023-11-30 09:23:25 25 4
gpt4 key购买 nike

我们有一个部署在 tomcat 服务器(v5.5 和 v6)上的个人 java 库。该库与许多Web应用程序共享,因此部署在tomcat目录下的shared/lib。

特别是,我必须在这个库中创建一个新类,它通过 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 数据源时,我有一个异常(exception):在上下文中找不到名称 jdbc

我们不在网络应用程序中,这是一个问题吗?是否可以使用 ResourceLink 声明 context.xml ?怎么样?

nb: jndi 在 server.xml 中设置(GlobalNamingResources 中的资源)

最佳答案

<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 访问将来自 web-app 而不是共享 jar,因为独立 jar 没有上下文的概念。

关于java - 如何查找 (JDBC) JNDI 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com