/ / Oracle.jdbc.driver.LogicalConnection wird benötigt, oracle.jdbc.OracleConnection benötigt - java, oracle, jdbc, websphere

Oracle.jdbc.driver.LogicalConnection benötigt, oracle.jdbc.OracleConnection benötigt - java, oracle, jdbc, websphere

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

Der Code sieht so 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 anruft ArrayDescriptor.createDescriptor löst eine Klassenausnahme aus

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection ist inkompatibel mit oracle.jdbc.OracleConnection bei oracle.sql.ArrayDescriptor.createDescriptor (ArrayDescriptor.java:149) bei oracle.sql.ArrayDescriptor.createDescriptor (ArrayDescriptor.java:115)

Wenn ich das mit dem Debugger durchlaufe, kann ich das sehen conn ist definitiv ein oracle.jdbc.driver.LogicalConnection. Das Problem ist, dass ich mich nicht wirklich darauf beziehen kann LogicalConnection in meinem Code, weil diese Klasse nicht öffentlich ist, also kann ich nicht einfach so etwas tun:

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 ist inkompatibel mit oracle.jdbc.driver.OracleConnection

Ich muss eine haben OracleConnection Objekt, aber ich kann nicht eins von der LogicalConnection das wird mir zurückgegeben. Hat das schon mal jemand gesehen? Ich fühle, dass ich etwas wirklich Offensichtliches hier vermisse, aber vielleicht brauche ich nur noch eine Tasse Kaffee ...

Antworten:

2 für die Antwort № 1

@Alex Poole wies mich in die richtige Richtung. Maven enthielt ein Oracle-Jar, Version 10.2.0.1.0, und WebSphere hatte das gleiche Jar, aber Version 10.2.0.4.0.

Nachdem das POM repariert wurde, so dass das Version 10.2.0.1.0-Jar nicht bereitgestellt wurde, scheint das Problem gelöst zu sein.