Für oracle.jdbc.driver.LogicalConnection benötigen Sie oracle.jdbc.OracleConnection

Ich versuche, eine Verbindung zu einer Oracle-Datenbank in einer Java-Anwendung herzustellen, die auf WebSphere ausgeführt wird. Ich muss in der Lage sein, einen Array-Deskriptor zu erstellen, der in einem Aufruf einer Prozedur verwendet werden kann.

Der Code sieht folgendermaßen aus:

Connection conn=null;
ArrayDescriptor arrayDescriptor;
Connection tmpCon = jdbcTemplate.getDataSource().getConnection();
conn =  WSCallHelper.getNativeConnection(tmpCon);
arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",conn);
IDs = new oracle.sql.ARRAY(arrayDescriptor, conn, list.toArray());

Die Leitung, die anruftArrayDescriptor.createDescriptor Löst eine Klassenausnahme aus

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.OracleConnection
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:149)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)

Wenn ich mit dem Debugger durch das Buch gehe, kann ich das sehenconn ist definitiv einoracle.jdbc.driver.LogicalConnection. Das Problem ist, ich kann nicht wirklich verweisenLogicalConnection in meinem Code, weil diese Klasse nicht öffentlich ist, also kann ich nicht einfach so etwas machen:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((LogicalConnection)conn).getWrapper());

.

Und das:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((oracle.jdbc.driver.OracleConnection)conn).getWrapper());

gibt auch eine Klassenausnahme zurück:

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.driver.OracleConnection

Ich brauche eineOracleConnection Objekt, aber ich kann nicht scheinen, eine von der zu bekommenLogicalConnection das wird mir zurückgegeben. Hat das schon mal jemand gesehen? Ich habe das Gefühl, dass mir hier etwas wirklich Offensichtliches fehlt, aber vielleicht brauche ich noch eine Tasse Kaffee ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage