Spring Boot 2.x Connection Factory - PullRequest
       4

Spring Boot 2.x Connection Factory

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

У меня есть следующий класс, который хорошо работает в Spring Boot 1.5.x

public ConnectionFactory connectionFactory() {
        org.springframework.data.jdbc.config.oracle.AqJmsFactoryBeanFactory f=new AqJmsFactoryBeanFactory();
        f.setDataSource(dataSource);
        f.setCoordinateWithDataSourceTransactions(true);
        f.setNativeJdbcExtractor(new org.springframework.jdbc.support.nativejdbc.Jdbc4NativeJdbcExtractor());
        f.setConnectionFactoryType(ConnectionFactoryType.QUEUE_CONNECTION);
        try {
            return f.getObject();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

Я обновил до версии 2.0.4, где NativeJdbcExtractor отсутствует.Может кто-нибудь помочь мне, как перенастроить вышеупомянутое, чтобы получить фабрику соединения.

Ответы [ 2 ]

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

Я использовал что-то подобное, что может помочь вам:

public OracleConnection getOracleConnection(Connection connection) throws SQLException {
    OracleConnection oconn = null;
    try {
        if (connection.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
            oconn = (OracleConnection) connection.unwrap(oracle.jdbc.OracleConnection.class)._getPC();
        }
    } catch (SQLException e) {
        throw e;
    }
    return oconn;
}
0 голосов
/ 06 декабря 2018

Вся иерархия nativejdbc больше не существует, и то, чего там больше нет, не может быть использовано. Так что либо не обновляйте, либо найдите способ не нуждаться в этом (jdbc 4 может использовать unwrap для получения фактического базового соединения).

Для получения фактического базового соединения в Соединении есть метод развертывания.Таким образом, что-то вроде connection.unwrap(OracleConnection.class) должно дать вам реальное базовое соединение.Однако для этого может потребоваться дополнительное обновление aq-jms-connection-factory, которое, я не уверен, поддерживает Spring 5.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...