Hikari引发错误目标类org.postgresql.ds.PGPoolingDataSource上不存在属性url

时间:2018-08-28 05:30:57

标签: java postgresql spring-boot kubernetes hikaricp

我正从kubernetes集群中遇到此错误。虽然它可以从我的本地服务器完美运行。这是我的SpringBoot App的application.yml

春天:

datasource:
    dataSourceClassName: org.postgresql.ds.PGPoolingDataSource
    url: jdbc:postgresql://${POSTGRES_HOST}:5432/test_db
    databaseName: test_db
    poolName: SpringBootHikariCP
    username: ${POSTGRES_USER}
    password: ${POSTGRES_PASSWORD}
    testWhileIdle: true
    validationQuery: SELECT 1
jpa:
    database-platform: org.hibernate.dialect.PostgreSQL82Dialect
    openInView: false
    show_sql: true
    generate-ddl: true
    hibernate:
        ddl-auto: update
        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
        use-new-id-generator-mappings: true
    properties:
        hibernate.cache.use_second_levelt_cache: false
        hibernate.cache.use_query_cache: false
        hibernate.generate_statistics: true
        hibernate.hbm2ddl.auto: validate

这是我的Hikari配置。

            HikariConfig config = new HikariConfig();
            config.setDataSourceClassName(dataSourceClassName);
            config.addDataSourceProperty("url", url);
            config.addDataSourceProperty("user", user);
            config.addDataSourceProperty("password", password);

            return new HikariDataSource(config);

我已经检查了没有Hikari的kubernetes的数据库连接性,并且它运行良好。因此,连接没有问题。 请帮助我解决这个问题。我坚持了几天。 谢谢

2 个答案:

答案 0 :(得分:2)

${POSTGRES_HOST}期望您在特定计算机上可能缺少的system environment variable,例如,添加它:

export POSTGRES_HOST="1.1.1.1"

答案 1 :(得分:1)

url更改为jdbc:postgresql://localhost:5432/test_db

jdbc:postgresql://<host ip>:5432/test_db

占位符${POSTGRES_HOST}似乎有问题

尝试使用本地主机

datasource:
    dataSourceClassName: org.postgresql.ds.PGPoolingDataSource
    url: jdbc:postgresql://localhost:5432/test_db;
    databaseName: test_db
    poolName: SpringBootHikariCP
    username: ${POSTGRES_USER}
    password: ${POSTGRES_PASSWORD}
    testWhileIdle: true
    validationQuery: SELECT 1

可能您尚未设置环境变量$ {POSTGRES_HOST},这也可能是一个原因。