Oracle接続を作成したい。現在、構造体記述子を作成するためにjdbc接続を渡していますが、ここでは以下のような例外が発生しています。したがって、これを回避するには、データソースから取得する代わりに、java.sql.connectionまたはoracle接続を作成する必要があります。
org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6をoracle.jdbc.OracleConnectionにキャストできません
java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6 cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:160)
at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:131)
以下は、上記の例外が発生するコードです。
Connection conn = getDataSource().getConnection();
StructDescriptor itemDescriptor = StructDescriptor.createDescriptor(("EMP_DATA", conn);
StructDescriptor addressDescriptor = StructDescriptor.createDescriptor("EMP_ADDRESS", conn);
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("EMP_TABLE", conn);
/** Creating Objects */
Object[] itemAtributes = new Object[] {
"XXX", "XXX", new STRUCT(addressDescriptor, conn, new Object[] {
"XXX", "XXX", "XXX" }) };
STRUCT itemObject1 = new STRUCT(itemDescriptor, conn, itemAtributes);
itemAtributes = new Object[] {
"YYY", "YYY", new STRUCT(addressDescriptor, conn, new Object[] {
"YYY", "YYY", "YYY" }) };
STRUCT itemObject2 = new STRUCT(itemDescriptor, conn, itemAtributes);
STRUCT[] idsArray = {
itemObject1, itemObject2 };
ARRAY array_to_pass = new ARRAY(descriptor, conn, idsArray);
/** Calling Procedure */
ps = (OraclePreparedStatement) conn.prepareStatement("begin Pr_save_emp(:x); end;");
このregaredの助けをいただければ幸いです。