Я получаю, `DSRA9122E: com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@d3t7e556 не переносит объекты типа oracle.jdbc.OracleConnection - PullRequest
0 голосов
/ 04 декабря 2018

Я использую Websphere 18 Liberty Version.Когда я пытаюсь развернуть java.sql.connection к oracle.jdbc.OracleConnection, я получаю

`DSRA9122E: com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@d3t7e556 не переносит объектыТип oracle.jdbc.OracleConnection

В файле sever.xml я использую ojdbc7.jar для источника данных, также в приложении я добавил тот же самый jar из того же места.Все еще сталкиваюсь с проблемой.Я ссылался на все ссылки WSJDBCConnection не переносит объекты типа oracle.jdbc.OracleConnection следующим образом.Все еще сталкиваюсь с той же проблемой.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вам не нужно разворачиваться в OracleConnection.Вы можете использовать объект Connection, чтобы установить соединение с БД.

// Get a context for the JNDI look up
DataSource ds = getDataSource();
try (Connection connection = ds.getConnection()) {
  {
   executeBusinessLogicOnDatabase(connection));
   ......
  }
  connection.close();
  }
0 голосов
/ 04 декабря 2018

Для правильной работы Connection.unwrap источник данных Liberty и приложение должны одновременно загрузить класс реализации поставщика (oracle.jdbc.OracleConnection) из одного загрузчика классов.

Вот простой примеро том, как настроить источник данных и ваше приложение для использования одного загрузчика классов для загрузки из одной библиотеки, содержащей драйвер JDBC Oracle,

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

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

<dataSource jndiName="jdbc/oracleDataSource">
    <jdbcDriver libraryRef="OracleLib"/>
    <properties.oracle .../>
</dataSource>
...