web-dev-qa-db-ja.com

HikariPool-1-driverClassNameにはjdbcUrlが必要です

古いプログラムのプログラミングに戻りました https://github.com/JonkiPro/REST-Web-Services 。 Spring Bootをバージョン15.6からバージョン2.0.0に更新しました。コンパイルで多くの問題に遭遇しましたが、対処できません。まあ、コンパイル中に、彼は私をコンソールに投げます

2018-03-18 21:54:53.339 ERROR 3220 --- [ost-startStop-1] com.zaxxer.hikari.HikariConfig           : HikariPool-1 - jdbcUrl is required with driverClassName.
2018-03-18 21:54:55.392  INFO 3220 --- [ost-startStop-1] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'unit'
2018-03-18 21:54:56.698  INFO 3220 --- [ost-startStop-1] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'unit'
2018-03-18 21:54:56.778 ERROR 3220 --- [ost-startStop-1] com.zaxxer.hikari.HikariConfig           : HikariPool-1 - jdbcUrl is required with driverClassName.
2018-03-18 21:54:56.782 ERROR 3220 --- [ost-startStop-1] o.s.b.web.embedded.Tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'webSecurityConfig': Unsatisfied dependency expressed through field 'userDetailsService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDetailsService' defined in file [C:\Users\Jonatan\Documents\GitHub\REST-Web-Services\web\out\production\classes\com\web\web\security\service\impl\UserDetailsServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Cannot create inner bean '(inner bean)#65d6e77b' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#65d6e77b': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Post-processing of FactoryBean's singleton object failed; nested exception is Java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
2018-03-18 21:54:56.821  WARN 3220 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat

私はそのような間違いは一度もありませんでした。私はそれが完全に何を意味するのか分かりません。ベースのプロパティは次のようになります

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql:database
    username: root
    password: root
    schema: classpath:/db/init/schema.sql

このエラーに対処する方法がわかりません。私はかなり長い間プログラミングをしてきましたが、初めてhikariの概念に出会いました。 Tomcat(Spring Boot)サーバーとPostgreSQLデータベースを使用しています。

13
rytyrtytr

別の状況でも同じ問題が発生しました。 79。データアクセス-カスタムデータソースの設定 から

クラスパスにひかりがある場合、この基本的なセットアップは機能しません。これは、ひかりにurlプロパティがない(ただしjdbcUrlプロパティがある)ためです。

ヒカリは、スプリングブート2のデフォルトのプールです。

config url: jdbc:postgresql:database-> jdbc-url: jdbc:postgresql:database

または、構成を保持することもできますが、マッピング(エイリアス)を処理するために別のBeanを定義する必要があります

@Bean
@Primary
@ConfigurationProperties("app.datasource")
public DataSourceProperties dataSourceProperties() {
    return new DataSourceProperties();
}

@Bean
@ConfigurationProperties("app.datasource")
public DataSource dataSource(DataSourceProperties properties) {
    return properties.initializeDataSourceBuilder().
        .build();
}
16

spring.datasource.driver-class-nameプロパティを削除するか、spring.datasource.urlプロパティの名前をspring.datasource.jdbc-urlに変更します。

これはエラーで報告されます:

Java.lang.IllegalArgumentException:driverClassNameにはjdbcUrlが必要です

最初のオプションはよりクリーンに見え、Spring Bootはspring.datasource.urlプロパティ値に基づいてデフォルトのドライバークラス名を見つけます(これをデバッグする場合はorg.springframework.boot.jdbc.DatabaseDriverクラスを参照してください)。

11
Karol Dowbecki