Spring boot + hikari - требуется dataSource или dataSourceClassName или jdbcUrl - PullRequest
0 голосов
/ 24 ноября 2018

Я получаю следующую ошибку при попытке запустить приложение Spring

ERROR 5908 --- [ main] com.zaxxer.hikari.HikariConfig : HikariPool-1 - dataSource or dataSourceClassName or jdbcUrl is required.

Мой application.properties файл выглядит следующим образом:

spring.datasource.one.jdbc-url = jdbc:postgresql://10.x.x.x:y/sampledb1
spring.datasource.one.username = someuser
spring.datasource.one.password = somepasswd
spring.datasource.one.driver-class-name = org.postgresql.Driver

spring.datasource.two.jdbc-url = jdbc:postgresql://10.x.x.x:z/sampledb2
spring.datasource.two.username = someuser
spring.datasource.two.password = somepassword
spring.datasource.two.driver-class-name = org.postgresql.Driver

И яиспользуя класс DataSourceBuilder, как показано ниже:

@Configuration
public class DataSourceConfig
{
    @Bean(name = "one")
    @Primary
    @ConfigurationProperties(prefix = "spring.datasource.one") 
    public DataSource dataSource1()
    {
        return DataSourceBuilder.create().build();
    }

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

Мой pom выглядит следующим образом.

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath />
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <avro.version>1.8.2</avro.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <version.powermock>1.6.2</version.powermock>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>log4j-over-slf4j</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- actuator -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- eureka -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <!-- hystrix -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
    </dependency>
     </dependencies> 

Раньше это работало нормально, но теперь вызывает некоторые проблемы.И возникает ошибка intermittently, иногда она запускается без ошибок, в других случаях происходит сбой с ошибкой.

Я пробовал решения, предложенные в ссылке . Кажется, они не работают дляя.

1 Ответ

0 голосов
/ 24 ноября 2018

Измените jdbc-url на jdbcUrl, чтобы Hikari мог найти подходящий драйвер для URL.

jdbcUrl Это свойство указывает HikariCP использовать "DriverManagerКонфигурацияМы считаем, что конфигурация на основе источника данных (см. Выше) лучше по ряду причин (см. Ниже), но для многих развертываний существует незначительная разница.При использовании этого свойства со «старыми» драйверами вам также может понадобиться установить свойство driverClassName, но попробуйте сначала без него.Обратите внимание, что если используется это свойство, вы все равно можете использовать свойства DataSource для настройки вашего драйвера, и на самом деле это рекомендуется для параметров драйвера, указанных в самом URL.По умолчанию: нет

...