sql >> Database teknologi >  >> RDS >> Oracle

WSJDBCConnection ombryder ikke objekter af typen Oracle jdbc Connection

Jeg har lige testet dette på WebSphere Liberty, og følgende kode fungerede for mig:

@Resource(lookup = "jdbc/oracle")
private DataSource ds;

// ...

Connection conn = ds.getConnection();
OracleConnection oracleConn = conn.unwrap(oracle.jdbc.OracleConnection.class);

Min server.xml ser sådan ud:

<dataSource jndiName="jdbc/oracle">
    <jdbcDriver libraryRef="oracleLib"/>
    <properties.oracle URL="${jdbc.URL}" user="${jdbc.user}" password="${jdbc.password}"/>
</dataSource>

<library id="oracleLib">
    <fileset dir="${server.config.dir}/oracle"/>
</library>

<application location="myApp.war" >
    <classloader commonLibraryRef="oracleLib"/>
</application>

Det vigtige at bemærke her er brugen af ​​commonLibraryRef<classloader> element. Hvis du bruger privateLibraryRef det vil ikke fungere, fordi den app og server-definerede datakilde vil bruge isolerede klasseindlæsere til at indlæse Oracle JDBC-klasserne.

Hvis dette svar ikke er nyttigt for dig, bedes du opdatere dit spørgsmål med din server.xml-konfiguration, og også hvordan du får en forekomst af din DataSource .



  1. SQLite Vælg Distinct

  2. Hvordan replikeres kun INSERTs ikke SLETTER/OPDATERINGER på Slony Slave Node?

  3. DATE() Eksempler – MySQL

  4. MySQL udenlandske nøgler