簡體   English   中英

從Tomcat投射JDBC JNDI數據源-ComboPooledDataSource

[英]Casting JDBC JNDI datasources from Tomcat - ComboPooledDataSource

有人可以請我擺脫苦難,並解釋為什么會發生這種情況以及如何解決它。

  1. 一個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" 

    />

  2. 查找

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM