gpt4 book ai didi

java - jdbc javax.naming.NameNotFoundException 异常

转载 作者:行者123 更新时间:2023-11-28 22:20:44 24 4
gpt4 key购买 nike

这个异常问题困扰我很久了。我正在尝试连接到外部 mysql 数据库,但我一直收到此异常。我看了很多例子,但我仍然没有找到答案。这是我的代码,请记住,这是我为此使用的所有代码,所以如果我遗漏了什么,请指出:

    <?xml version="1.0" encoding="UTF-8"?>
<context>
<!-- Registers Database with JNDI Naming Service as a pooled DataSource -->
<Resource
name="jdbc/DBNAME"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="****"
password="********"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://****:3306/****"/>

</context>

这是我调用它的代码:

try
{
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/DBNAME");
Connection c = ds.getConnection();
return c;
}
catch(NamingException ne)
{
System.out.println(ne.toString());
return null;
}
catch (SQLException se)
{
System.out.println(se.toString());
return null;
}

用户名、密码、数据库 URL 和连接名称已被编辑,但其余部分是正确的。

最佳答案

来自 Tomcat 文档:

http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html

尝试使用这段代码:

Context ic= new InitialContext();
Context envCtx = (Context) ic.lookup("java:comp/env");

DataSource ds = (DataSource)envCtx.lookup("jdbc/DBNAME");

问候。

关于java - jdbc javax.naming.NameNotFoundException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263341/

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