Как определить источник данных MS SQL для использования в apache camel? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь создать источник данных для использования с компонентом Apache camel sql, и согласно документации я определил свойства источника данных spring и включил зависимости в свой файл pom :

        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-jdbc-starter</artifactId>
        </dependency>

        <!-- Component dependencies-->
        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-sql-starter</artifactId>
        </dependency>

        <!-- MS SQL jdbc driver -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>8.2.2.jre11</version>
        </dependency>

Я даже определил сконфигурированный источник данных в соответствии с многочисленными примерами чтения (хотя, если я не ошибаюсь, в этом нет необходимости, если определены свойства источника данных по умолчанию spring):

@Configuration
public class DataSourceConfig {

    @Bean(name = "etlDataSource")
    @ConfigurationProperties("spring.datasource")
    public DataSource getDataSource(){
        return DataSourceBuilder.create().build();
    }
}

Пока все мои усилия приводят к одной и той же ошибке:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etlDataSource' defined in class path resource [com/test/camel/etl/config/DataSourceConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'getDataSource' threw exception; nested exception is java.lang.IllegalStateException: No supported DataSource type found

Я был бы признателен за некоторые указатели относительно того, что мне не хватает.

РЕДАКТИРОВАТЬ:

Мои свойства источника данных, как определено:

spring:
  datasource:
    password: some_passw0rd
    url: jdbc:sqlserver://localhost:1433;trustServerCertificate=false;loginTimeout=30;
    username: sa
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    platform: mssql

1 Ответ

0 голосов
/ 14 июля 2020

Я решил. Я заглянул в источник DataSourceBuilder и увидел, что метод сборки пытается определить тип, поэтому я указал его в экземпляре, и он сработал:

    @Bean(name = "etlDataSource")
    @ConfigurationProperties("spring.datasource")
    public DataSource getDataSource(){
        return DataSourceBuilder.create().type(BasicDataSource.class).build();
    }
...