[英]Casting JDBC JNDI datasources from Tomcat - ComboPooledDataSource
有人可以請我擺脫苦難,並解釋為什么會發生這種情況以及如何解決它。
一個tomcat數據源
<Resource name="MY_JDBC_NAME" auth="Container" driverClass="oracle.jdbc.OracleDriver" jdbcUrl="MyURL" user="MyUser" password="MyPassword" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" maxPoolSize="25" minPoolSize="5" acquireIncrement="1" acquireRetryAttempts = "2" idleConnectionTestPeriod = "60" testConnectionOnCheckout = "true" preferredTestQuery = "SELECT 1 FROM DUAL"
/>
查找
ComboPooledDataSource ds = (ComboPooledDataSource) ctx.lookup( "java:comp/env/MY_JNDI_NAME");
這導致莫名其妙
java.lang.ClassCastException: com.mchange.v2.c3p0.ComboPooledDataSource cannot be cast to com.mchange.v2.c3p0.ComboPooledDataSource
提前致謝
我正在使用它,也許它也可以完美地為您工作,嘗試一下,
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
....
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("MY_JDBC_NAME");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.