Heroku Java应用程序在本地崩溃但不在网络上崩溃

Ab_*_*Ab_ 8 java git heroku shadowjar

我有我的主要课程:

public class Main {

    public static void main(String[] args){
        Spark.port(getHerokuAssignedPort());
        get("/hello", (req, res) -> "Hello Heroku World");
    }



    private static int getHerokuAssignedPort() {
        ProcessBuilder processBuilder = new ProcessBuilder();
        if (processBuilder.environment().get("PORT") != null) {
            return Integer.parseInt(processBuilder.environment().get("PORT"));
        }
        return 4567; //return default port if heroku-port isn't set (i.e. on localhost)
    }

}
Run Code Online (Sandbox Code Playgroud)

我的procfile:

web: java -jar build/libs/CrowdSubhaHeroku-1.0-SNAPSHOT-all.jar
Run Code Online (Sandbox Code Playgroud)

注意:我正在使用shadowJar,因为正常的jar创建不包含我需要的依赖项,例如Spark和Firebase.

现在,如果我这样做:

heroku local web
Run Code Online (Sandbox Code Playgroud)

然后去localhost:5000,我得到404错误.但是,应用程序实际上并没有崩溃.它一直在运行.

这与我不同:

heroku open
Run Code Online (Sandbox Code Playgroud)

之后git add .,git commit -m "x"git push heroku master

这与"应用程序错误"崩溃,并给了我这个ONLY:

2017-02-23T15:18:18.848727+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=crowdsubha.herokuapp.com request_id=ce636951-862e-4b2f-a698-924db3039a07 fwd="94.187.7.67" dyno= connect= service= status=503 bytes=
2017-02-23T15:18:20.022743+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=myapp.herokuapp.com request_id=d1e9ec86-ffe4-4a09-9934-81e25378c32c fwd="94.187.7.67" dyno= connect= service= status=503 bytes=
Run Code Online (Sandbox Code Playgroud)

这是我得到的唯一错误.以前的错误是昨天的日志.

我不确定是什么问题.我怀疑它与它有关shadowJar.但我不确定.

Ali*_*eir 3

我发现出了什么问题。我必须从使用togradlew clean stage部署到 Heroku 时更改我的构建方法。git push Heroku mastergradlew shadowJar

文档中提到了我是如何做到的:

Heroku config:set GRADLE_TASK="shadowJar"
Run Code Online (Sandbox Code Playgroud)

现在,每次执行 a 时git push Heroku master,它不会运行gradlew clean stage,而是运行gradlew shadowJar,我用它来将依赖项包含到我的 Java Web 应用程序中。