3
Spring應用程序如下:錯誤使用JNDI查找獲取數據源鑄造T4CConnection到的OracleConnection
@Bean(name = "dataSource1", destroyMethod = StringUtils.EMPTY)
public DataSource dataSource() {
final JndiDataSourceLookup lookup = new JndiDataSourceLookup();
lookup.setResourceRef(true);
return lookup.getDataSource(this.environment.getProperty(Constants.DB_JNDI_NAME_ES));
}
,並獲得來自數據源的連接如下:
@Autowired
@Qualifier("dataSource1")
private DataSource ds;
Connection conn = null;
conn = this.ds.getConnection();
但是當我傳遞連接StructDescriptor拋出classCastException如下:
StructDescriptor desc1 = StructDescriptor.createDescriptor( 「MSAF_DBA.AMOUNT_DUE_OBJ」 conn);在
java.lang.ClassCastException: weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:101)
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:72)
at com.ceiwc.es.policyholder.dao.PolicyHolderDaoImpl.getAmountDue(PolicyHolderDaoImpl.java:290)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
我的理解是getConnection()
回報作爲地方需要OracleConnection
一個T4CConnection
。嘗試了幾種方法來獲得oracleConnection
,但似乎不能得到它。任何幫助,將不勝感激。
如果您正在使用Maven,使這個罐子_provided_。另外,在管理控制檯中,您需要**取消選擇數據源的連接池/高級下的_Wrap數據類型_複選框。 – NuAlphaMan 2014-12-04 15:22:24