繁体   English   中英

无法让 Heroku 显示我的 Spring 启动应用程序

[英]Can't get Heroku to display my Spring Boot app

我正在尝试将带有 MySQL 数据库的 spring 引导应用程序部署到 Heroku。 该应用程序在我的本地服务器端口 8080 上运行,构建到 Heroku 成功,部署到 Heroku 成功,但是当我在 Heroku 上打开我的应用程序时,它只显示应用程序错误。

我怀疑它与 Heroku 分配的 ${PORT} 变量有关。 我研究了如何使用 spring 引导更改端口并将其添加到 Procfile 和 application.properties 文件中。 我还尝试了 system.properties 甚至是 a.env 文件,但都没有工作。 我还注释掉了与数据库相关的所有代码,因为如果不托管数据库,那将无法在 Heroku 上运行。 所以我真的只是想让基本的 GET 路径 / 和 /Greeting 工作。

heroku 日志 --tail:

2021-12-07T16:42:52.384694+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=doc2blog.herokuapp.com request_id=83fe491a-1560-4d09-ae64-a028688ddf0b fwd="41.113.231.2" dyno= connect= service= status=503 bytes= protocol=https
2021-12-07T16:42:53.265450+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=doc2blog.herokuapp.com request_id=b3a99f6a-1167-4358-a875-6874bee882b6 fwd="41.113.231.2" dyno= connect= service= status=503 bytes= protocol=https

我的档案:

web java -Dserver.port=$PORT $JAVA_OPTS -jar target/Doc2Blog-0.0.1-SNAPSHOT.jar

我的 application.properties 文件:

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
server.port=${PORT:8080}
#spring.jpa.show-sql: true

我的 system.properties 文件:

java.runtime.version=17

我的 POML.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 https://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.6.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>hyperion</groupId>
    <artifactId>Doc2Blog</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Doc2Blog</name>
    <description>Converts docs to blogposts</description>
    <properties>
        <java.version>17</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-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

</project>

当我将 Spring 引导应用程序部署到 Heroku 时,我在 application.yml/application.properties 中将端口设置为 8080,并且不使用 Procfile。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM