sql >> Database >  >> RDS >> Oracle

WSJDBCConnection verpakt geen objecten van het type Oracle jdbc Connection

Ik heb dit zojuist getest op WebSphere Liberty en de volgende code werkte voor mij:

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

// ...

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

Mijn server.xml ziet er als volgt uit:

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

Het belangrijkste om hier op te merken is het gebruik van commonLibraryRef op de <classloader> element. Als u privateLibraryRef . gebruikt het zal niet werken omdat de app en de door de server gedefinieerde gegevensbron geïsoleerde classloaders zullen gebruiken om de Oracle JDBC-klassen te laden.

Als dit antwoord niet nuttig voor u is, werk dan uw vraag bij met uw server.xml-configuratie, en ook hoe u een exemplaar van uw DataSource verkrijgt .



  1. Hoe converteer ik een geheel getal naar een string als onderdeel van een PostgreSQL-query?

  2. Spotlight Cloud instellen en efficiënt problemen oplossen met SQL Server

  3. Codeer uw eerste API met Node.js en Express:verbind een database

  4. Hoe e-mail verzenden vanuit SQL Server?