在heroku上部署spring boot应用程序的问题

Posted

技术标签:

【中文标题】在heroku上部署spring boot应用程序的问题【英文标题】:problem deploying spring boot app on heroku 【发布时间】:2019-08-03 10:32:31 【问题描述】:

我有一个带有数据库的 Spring Boot 应用程序。对于测试,我使用了 H2 数据库,一切正常。现在我正在尝试在 Heroku 上部署我的应用程序。 在我的活动提要中,我收到构建成功并且应用程序已部署的消息。当我转到 URL 时,我收到一个应用程序错误。

我猜我与 postgresql 数据库的连接有问题。在 Spring 中,我使用的是 JPARepository。

这是我的 application.properties 文件,来自我的 H2 数据库,所以现在不是很有用:

spring.h2.console.enabled=true
spring.h2.console.path=/console

在 heroku 上,我有以下配置变量:

看图:数据库url被填写,密码是heroku上数据库设置的副本,spring数据库url jdbc:postgresql:host 数据库凭据:5432/数据库名和用户名也是数据库用户名的副本

这是我的 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0     http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>info.climbinggyms</groupId>
<artifactId>main</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>main</name>
<description>website with an overview of the existing climbing gyms</description>

<properties>
    <java.version>8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>



    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>



    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

            <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.3</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.3.1.RELEASE</version>
    </dependency>


    <dependency>
        <groupId>nz.net.ultraq.thymeleaf</groupId>
        <artifactId>thymeleaf-layout-dialect</artifactId>
        <version>2.3.0</version>
    </dependency>

    <!--
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    -->


</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

这是我的日志:

2019-03-12T20:13:26.055651+00:00 app[web.1]: 
2019-03-12T20:13:26.055693+00:00 app[web.1]:   .   ____          _            __ _ _
2019-03-12T20:13:26.055748+00:00 app[web.1]:  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
2019-03-12T20:13:26.055804+00:00 app[web.1]: ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2019-03-12T20:13:26.055873+00:00 app[web.1]:  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
2019-03-12T20:13:26.055908+00:00 app[web.1]:   '  |____| .__|_| |_|_| |_\__, | / / / /
2019-03-12T20:13:26.055962+00:00 app[web.1]:  =========|_|==============|___/=/_/_/_/
2019-03-12T20:13:26.057441+00:00 app[web.1]:  :: Spring Boot ::        (v2.1.3.RELEASE)
2019-03-12T20:13:26.057564+00:00 app[web.1]: 
2019-03-12T20:13:26.448731+00:00 app[web.1]: 2019-03-12 20:13:26.428  INFO 4 --- [           main] info.climbinggyms.main.MainApplication   : Starting MainApplication v0.0.1-SNAPSHOT on 3853ed86-86c8-4fb2-8e13-6f34d48b748e with PID 4 (/app/target/main-0.0.1-SNAPSHOT.jar started by u45998 in /app)
2019-03-12T20:13:26.458624+00:00 app[web.1]: 2019-03-12 20:13:26.458  INFO 4 --- [           main] info.climbinggyms.main.MainApplication   : No active profile set, falling back to default profiles: default
2019-03-12T20:13:29.684952+00:00 app[web.1]: 2019-03-12 20:13:29.683  INFO 4 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-03-12T20:13:30.153545+00:00 app[web.1]: 2019-03-12 20:13:30.149  INFO 4 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 450ms. Found 4 repository interfaces.
2019-03-12T20:13:31.821390+00:00 app[web.1]: 2019-03-12 20:13:31.820  INFO 4 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$319e3998] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-03-12T20:13:33.320904+00:00 app[web.1]: 2019-03-12 20:13:33.320  INFO 4 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 21282 (http)
2019-03-12T20:13:33.430459+00:00 app[web.1]: 2019-03-12 20:13:33.430  INFO 4 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-03-12T20:13:33.430662+00:00 app[web.1]: 2019-03-12 20:13:33.430  INFO 4 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.16]
2019-03-12T20:13:33.446525+00:00 app[web.1]: 2019-03-12 20:13:33.446  INFO 4 --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/app/.jdk/jre/lib/amd64/server::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
2019-03-12T20:13:33.589450+00:00 app[web.1]: 2019-03-12 20:13:33.589  INFO 4 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-03-12T20:13:33.589765+00:00 app[web.1]: 2019-03-12 20:13:33.589  INFO 4 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 6086 ms
2019-03-12T20:13:34.018325+00:00 app[web.1]: 2019-03-12 20:13:34.017 ERROR 4 --- [           main] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.
2019-03-12T20:13:34.018337+00:00 app[web.1]: 
2019-03-12T20:13:34.018339+00:00 app[web.1]: org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
2019-03-12T20:13:34.018340+00:00 app[web.1]:    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:280) ~[postgresql-42.2.5.jar!/:42.2.5]
2019-03-12T20:13:34.018348+00:00 app[web.1]:    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.2.5.jar!/:42.2.5]
2019-03-12T20:13:34.018350+00:00 app[web.1]:    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) ~[postgresql-42.2.5.jar!/:42.2.5]
2019-03-12T20:13:34.018352+00:00 app[web.1]:    at org.postgresql.Driver.makeConnection(Driver.java:454) ~[postgresql-42.2.5.jar!/:42.2.5]
2019-03-12T20:13:34.018353+00:00 app[web.1]:    at org.postgresql.Driver.connect(Driver.java:256) ~[postgresql-42.2.5.jar!/:42.2.5]
2019-03-12T20:13:34.018354+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319) ~[tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018355+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:212) ~[tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018357+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:739) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018358+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:671) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018359+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:483) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018361+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018362+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018363+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018365+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:131) [tomcat-jdbc-9.0.16.jar!/:na]
2019-03-12T20:13:34.018371+00:00 app[web.1]:    at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157) [spring-jdbc-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
2019-03-12T20:13:34.018372+00:00 app[web.1]:    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115) [spring-jdbc-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
2019-03-12T20:13:34.018374+00:00 app[web.1]:    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78) [spring-jdbc-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
2019-03-12T20:13:34.018375+00:00 app[web.1]:    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:319) [spring-jdbc-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
2019-03-12T20:13:34.018376+00:00 app[web.1]:    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:356) [spring-jdbc-5.1.5.RELEASE.jar!/:5.1.5.RELEASE]
2019-03-12T20:13:34.018378+00:00 app[web.1]:    at org.springframework.boot.autoconfigure.orm.jpa.DatabaseLookup.getDatabase(DatabaseLookup.java:73) [spring-boot-autoconfigure-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
2019-03-12T20:13:34.018379+00:00 app[web.1]:    at org.springframework.boot.autoconfigure.orm.jpa.JpaProperties.determineDatabase(JpaProperties.java:142) [spring-boot-autoconfigure-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
2019-03-12T20:13:34.018381+00:00 app[web.1]:    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.jpaVendorAdapter(JpaBaseConfiguration.java:113) [spring-boot-autoconfigure-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
2019-03-12T20:13:34.018383+00:00 app[web.1]:    at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$5074fc07.CGLIB$jpaVendorAdapter$8(<generated>) [spring-boot-autoconfigure-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]

等等

【问题讨论】:

嗨,Bleau,您似乎正在尝试连接到localhost:5432,但出现连接异常:org.postgresql.util.PSQLException。你能分享你的连接配置吗? 【参考方案1】:

@克里斯蒂安 我不确定,看起来与数据库的连接仍然存在问题,这是我的日志的较长摘录:

2019-03-13T17:33:07.688970+00:00 app[web.1]: 2019-03-13 17:33:07.688 ERROR 4 --- [           main] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

2019-03-13T17:33:07.688986+00:00 app[web.1]: 

2019-03-13T17:33:07.688988+00:00 app[web.1]: org.postgresql.util.PSQLException: The connection attempt failed.

2019-03-13T17:33:07.688990+00:00 app[web.1]:    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:292) ~[postgresql-42.2.5.jar!/:42.2.5]

2019-03-13T17:33:07.688991+00:00 app[web.1]:    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.2.5.jar!/:42.2.5]

2019-03-13T17:33:07.688993+00:00 app[web.1]:    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195) ~[postgresql-42.2.5.jar!/:42.2.5]

2019-03-13T17:33:07.688995+00:00 app[web.1]:    at org.postgresql.Driver.makeConnection(Driver.java:454) ~[postgresql-42.2.5.jar!/:42.2.5]

2019-03-13T17:33:07.688996+00:00 app[web.1]:    at org.postgresql.Driver.connect(Driver.java:256) ~[postgresql-42.2.5.jar!/:42.2.5]

2019-03-13T17:33:07.688997+00:00 app[web.1]:    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319) ~[tomcat-jdbc-9.0.16.jar!/:na]

这是我的 pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>info.climbinggyms</groupId>
    <artifactId>main</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>main</name>
    <description>website with an overview of the existing climbing gyms</description>

    <properties>
        <java.version>8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>



        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
        </dependency>



        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

                <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.3</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.3.1.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
            <version>2.3.0</version>
        </dependency>

        <!--
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        -->


    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

这是我的属性文件:

spring.datasource.driverClassName=$SPRING_DATASOURCE_DRIVER-CLASS-NAME
spring.datasource.url=$SPRING_DATASOURCE_URL
spring.datasource.username=$SPRING_DATASOURCE_USERNAME
spring.datasource.password=$SPRING_DATASOURCE_PASSWORD

spring.jpa.show-sql=false
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create



spring.datasource.tomcat.initial-size=15
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.max-idle=15
spring.datasource.tomcat.min-idle=8
spring.datasource.tomcat.default-auto-commit=true

# Hibernate specific properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.properties.hibernate.id.new_generator_mappings=false

我正在使用 JPA 接口:

package info.climbinggyms.main;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;

public interface PictureRepository extends JpaRepository<Picture, UUID> 

这些是我的 heroku 配置变量:

DATABASE_URL: postgres://sbrjqzkrjkkzmc:c23d70564aa42650ea2cd1f45321a1112096f86564a2b86766ba36adf8dffa35@ec2-54-247-85-251.eu-west-1.compute.amazonaws.com:5432/dedt2i3dl1k7sm
SPRING_DATASOURCE_DRIVER-CLASS-NAME: org.postgresql.Driver
SPRING_DATASOURCE_PASSWORD: c23d70564aa42650ea2cd1f45321a1112096f86564a2b86766ba36adf8dffa35
SPRING_DATASOURCE_TYPE: org.apache.tomcat.jdbc.pool.DataSource
SPRING_DATASOURCE_URL: jdbc:postgresql://sbrjqzkrjkkzmc:c23d70564aa42650ea2cd1f45321a1112096f86564a2b86766ba36adf8dffa35@ec2-54-247-85-251.eu-west-1.compute.amazonaws.com:5432/dedt2i3dl1k7sm
SPRING_DATASOURCE_USERNAME: sbrjqzkrjkkzmc
SPRING_JPA_DATABASE-PLATFORM: org.hibernate.dialect.PostgreSQLDialect
SPRING_JPA_HIBERNATE_DDL-AUTO: update

【讨论】:

请阅读我的回答更新,您可能需要更新 heroku 上的 SPRING_DATASOURCE_URL。【参考方案2】:

根据您共享的日志文件,您正在尝试连接到localhost:5432,并且您收到异常org.postgresql.util.PSQLException。根据您的图片,heroku 数据库的域名应为:ec2-54-247-85-251.eu-wexxxxx

你应该使用heroku定义的环境变量,你可以通过修改你的应用程序的属性来实现这一点:

application.properties

spring.datasource.driverClassName=$SPRING_DATASOURCE_DRIVER-CLASS-NAME
spring.datasource.url=$SPRING_DATASOURCE_URL
spring.datasource.username=$SPRING_DATASOURCE_USERNAME
spring.datasource.password=$SPRING_DATASOURCE_PASSWORD

请参考 heroku documentation 和参考spring-boot。

更新

postgresql driver 似乎不支持您的数据源 url 上的格式,您需要遵循以下格式:

jdbc:postgresql:<host>:<port>/<database>

假设您定义了spring.datasource.usernamespring.datasource.password

或者

jdbc:postgresql:<host>:<port>/<database>?user=<username>&password=<password>

注意:由于LOB creation as createClob(),你可能会得到一个InvocationTargetExeption,即hibernate试图设置postgresql没有实现的功能,你可以忽略异常。

重要提示:重置您的凭据,这样任何人都无法访问您的实例。

【讨论】:

我将此添加到我的 aplication.properties 中,但我仍然遇到同样的问题。以上所有文档都是针对 JDBC 的,我使用的是 JPA,这有关系吗?这里是我的设置:SPRING_DATASOURCE_DRIVER-CLASS-NAME:org.postgresql.Driver SPRING_DATASOURCE_PASSWORD:org.apache.tomcat.jdbc.pool.DataSource SPRING_DATASOURCE_URL:JDBC:在PostgreSQL:// sbrjqzkrjkkzmc:c23d70564aa42650ea2cd1f45321a1112096f86564a2b86766ba36adf8dffa35 @ EC2从Heroku的DB设置SPRING_DATASOURCE_TYPE PW复制的-54-247-85-251.eu-west-1.compute.amazonaws.com:5432/dedt2i3dl1k7sm SPRING_DATASOURCE_USERNAME: sbrjqzkrjkkzmc SPRING_JPA_DATABASE-PLATFORM: org.hibernate.dialect.PostgreSQLDialect SPRING_JPA_HIBERNATE_DDL-AUTO: update 这是我的日志消息 WebApplicationContext: 初始化在 2934 毫秒内完成 2019-03-13T10:13:36.293244+00:00 app[web.1]: 2019-03-13 10:13:36.292 错误 4 --- [main] oatomcat.jdbc.pool.ConnectionPool:无法创建池的初始连接。 2019-03-13T10:13:36.293258+00:00 app[web.1]: 2019-03-13T10:13:36.293260+00:00 app[web.1]: org.postgresql.util.PSQLException: 连接尝试失败。 现在你遇到了连接池的问题,你可以看看这个教程baeldung.com/spring-boot-tomcat-connection-pool 它终于可以工作了,我删除了 Heroku 中的所有配置变量,Spring 中的所有属性,只添加了新格式的用户名、密码和 url,它就可以工作了。这部分有效,我的应用程序现在还有一些其他问题,但我会尝试自己解决这些问题。非常感谢您的帮助。而且我不会忘记更改密码 欢迎,如果您不介意,您可以标记答案,谢谢【参考方案3】:

删除 pom.xml 中的 java-version 属性

【讨论】:

虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请EDIT 提供示例代码来说明您的意思。或者,考虑将其写为评论

以上是关于在heroku上部署spring boot应用程序的问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot + Angular 2 Heroku 部署

Heroku 无法部署 Java 11 Spring Boot App [重复]

Spring Boot应用程序在Heroku代码= H10上崩溃

Heroku Spring Boot Gradle App 已部署但 App 崩溃

在 Heroku 上部署我的 Spring Boot 项目时出错(目标版本无效)

Heroku H14(没有运行 Web 进程)+ Spring-boot