sql >> Databasteknik >  >> RDS >> Oracle

WSJDBCConnection omsluter inte objekt av typen Oracle jdbc Connection

Jag testade precis detta på WebSphere Liberty och följande kod fungerade för mig:

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

// ...

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

Min server.xml ser ut så här:

<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 viktiga att notera här är användningen av commonLibraryRef<classloader> element. Om du använder privateLibraryRef det kommer inte att fungera eftersom appen och den serverdefinierade datakällan kommer att använda isolerade klassladdare för att ladda Oracle JDBC-klasserna.

Om det här svaret inte är till hjälp för dig, vänligen uppdatera din fråga med din server.xml-konfiguration, och även hur du skaffar en instans av din DataSource .



  1. Konvertera decimaltid till timmar och minuter

  2. 2nd Quadrant Deutschland – Special Training Opening Bargain

  3. Grundläggande tabelluttryck, del 9 – vyer, jämfört med härledda tabeller och CTE

  4. Hur implementerar man SQLite-databas för att lagra bitmappsbild och text?