gpt4 book ai didi

java - 启动连接池时出现NullPointerException

转载 作者:行者123 更新时间:2023-12-01 14:27:51 26 4
gpt4 key购买 nike

我在 context.xml 中有设置,其中包含我的数据库连接的信息

<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

<Resource
name="jdbc/*(my username)*"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
auth="Container"
type="javax.sql.DataSource"
removeAbandoned="true"
removeAbandonedTimeout="30"
maxACtive="100"
maxIdle="30"
maxWait="10000"
username= *(my username)*
password= *(my password)*
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://(my server host):50000/*(my username)*">
</Resource>
</Context>

虽然我为连接池创建了一个类来启动并将其连接到数据库。错误始于 getConnection() 的方法。 datasource.getConnection()

返回错误的方式是 NullPointerException
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;


public class ConnectionPool {
private static ConnectionPool pool = null;
private static DataSource dataSource = null;

private ConnectionPool() {
try {
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:/comp/env/jdbc/COMPANY");
System.out.print(dataSource);
} catch (NamingException e) {
System.out.println(e);
}
}

public static synchronized ConnectionPool getInstance() {
if (pool == null) {
pool = new ConnectionPool();
}
return pool;
}

public Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
System.out.println(e);
return null;
}
}

public void freeConnection(Connection c) {
try {
c.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}

我使用 Eclipse 的 Perspective Database Development 测试了数据库连接,我能够连接并完成所有查询。

此外,它在输出中给我这个错误

SEVERE: Unable to create initial connections of pool.
java.sql.SQLException: No suitable driver found for jdbc:db2://db2.cecsresearch.org:50000/(my username)

虽然我在 lib 文件夹和类路径中有 jar 库文件。

最佳答案

请从 https://artifacts.alfresco.com/nexus/content/repositories/public/com/ibm/db2/jcc/db2jcc4/10.1/db2jcc4-10.1.jar 下载 DB2 Java 驱动程序并将其添加到您的 tomcat/lib 目录中。然后重新启动 Tomcat,您就可以开始了!!

关于java - 启动连接池时出现NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60769152/

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