Hello Community,
I have an problem to get an Custom object from my Database.
Exception:
Java.lang.ClassCastException
org.apache.tomcat.dbcp.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper
cannot be cast to oracle.jdbc.OracleConnection at
oracle.sql.scruptdescriptor.createDescriptor()
My Code:
Class.forName("oracle.jdbc.OracleDriver");
Context contextEnv = (Context) new InitialContext().lookup("java:/comp/env");
DataSource dataSource = (DataSource) contextEnv.lookup("xxxx/xxx/xxxx_xxx");
Connection connectionDB = dataSource.getConnection();
System.out.println("-- 1 --");
System.out.println("Type: " + connectionDB.unwrap(oracle.jdbc.OracleConnection.class));
final StructDescriptor structDescriptor_Mitglied = StructDescriptor.createDescriptor("KPZ.RECTYPE_MITGLIED", connectionDB);
final ResultSetMetaData metaData_Mitglieder = structDescriptor_Mitglied.getMetaData();
System.out.println("-- 2 --");
Struct recMitglied = connectionDB.createStruct("KPZ.RECTYPE_MITGLIED",new Object[]
{
itemMitglied.getItemProperty("bname_id").getValue()
,itemMitglied.getItemProperty("bvorgang_id").getValue()
,itemMitglied.getItemProperty("mnr").getValue()
,itemMitglied.getItemProperty("bnr").getValue()
,itemMitglied.getItemProperty("anrede").getValue()
,itemMitglied.getItemProperty("titel").getValue()
,itemMitglied.getItemProperty("vorname").getValue()
,itemMitglied.getItemProperty("nachname").getValue()
,itemMitglied.getItemProperty("name1").getValue()
,itemMitglied.getItemProperty("name2").getValue()
,itemMitglied.getItemProperty("name3").getValue()
,itemMitglied.getItemProperty("strasse").getValue()
,itemMitglied.getItemProperty("haus_nr").getValue()
,itemMitglied.getItemProperty("plz").getValue()
,itemMitglied.getItemProperty("ort").getValue()
,itemMitglied.getItemProperty("telefon").getValue()
,itemMitglied.getItemProperty("email").getValue()
,itemMitglied.getItemProperty("status_kurz").getValue()
});
System.out.println("-- 3 --");
CallableStatement cs;
cs = connectionDB.prepareCall("BEGIN KPZ.PCK_MITGLIED.PRC_LESE_MITGL_ADRESSE(?,?,?); END;");
cs.setObject(1, recMitglied);
cs.registerOutParameter(2, Types.STRUCT,"KPZ.RECTYPE_TECHINFOS");
cs.registerOutParameter(3, Types.ARRAY,"KPZ.TABTYPE_MITGLIED");
cs.execute();
Context.xml
<Resource name="xxxx/xxx/xxxxx" auth="Container"
type="oracle.jdbc.pool.OracleDataSource"
driverClassName="oracle.jdbc.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
url="jdbc:oracle:thin:@xx.xx.xxx.xxxx:xxxx:AAAAAA"
user="xxxxx" password="xxxx" maxTotal="20" maxIdle="10"
maxWaitMillis="-1"/>
If anyone has an Idea, id would be great.
Thx