gpt4 book ai didi

java - DataSource 无法转换为 com.mchange.v2.c3p0.PooledDataSource

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

我正在尝试使用以下代码创建 context.xml:

    ComboPooledDataSource cpds = new ComboPooledDataSource();
try {
cpds.setDriverClass( "net.sourceforge.jtds.jdbc.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:jtds:sqlserver://10.38.28.77/MyDB" );
cpds.setUser("sa");
cpds.setPassword("password");
cpds.setMaxStatements( 180 );
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return cpds.getConnection();

我的意思是,将此硬编码设置转换为 context.xml,如下所示:

        <Resource name="jdbc/MyDBHrd" 
driverClass="net.sourceforge.jtds.jdbc.Driver"
maxPoolSize="100"
minPoolSize="15"
acquireIncrement="1"
auth="Container"
maxStatements="50"
idleConnectionTestPeriod="3600"
testConnectionOnCheckin="true"
automaticTestTable="connection_test"
maxIdleTime="21600"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:jtds:sqlserver://192.168.114.130/MyDB"
user="sa" password="password" />

但是使用此 context.xml 时:

    InitialContext cxt = new InitialContext();
String jndiName = "java:/comp/env/jdbc/MyDBHrd";
// Look up our data source
ComboPooledDataSource dataSource = (ComboPooledDataSource) cxt.lookup(jndiName);

抛出:

ClassCastException: org.apache.tomcat.dbcp.dbcp.DataSource cannot be cast to com.mchange.v2.c3p0.PooledDataSource

最佳答案

您应该将数据源声明为普通类型,而不是 Combo 类型。您要求 Tomcat 创建一个数据源,它不会为您创建其中之一。如果您需要将纯数据源包装在其中之一中,请在 Java 中执行此操作。

关于java - DataSource 无法转换为 com.mchange.v2.c3p0.PooledDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015258/

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