2012-12-23 3 views
1

이 코드의 밖으로의 context.xml을 만들려고 해요 캐스트 할 수없는 좋아 context.xml에 :데이터 소스는 com.mchange.v2.c3p0.PooledDataSource

 <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 

답변

2

데이터 소스는 콤보가 아닌 일반 바닐라 유형으로 선언해야합니다. Tomcat에 데이터 소스를 만들 것을 요청하면, 그 중 하나를 만들지 않을 것입니다. 일반 데이터 소스 중 하나에 일반 데이터 소스를 래핑해야하는 경우 Java에서이를 수행하십시오.

관련 문제