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 ...