簡體   English   中英

Heroku Java應用程序在本地崩潰,但不在網絡上崩潰

[英]Heroku Java app crashing locally but not on the web

我的主要課程是:

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)
    }

}

我的procfile:

web: java -jar build/libs/CrowdSubhaHeroku-1.0-SNAPSHOT-all.jar

注意:我使用shadowJar是因為普通的jar創建不包括我需要的依賴項,例如Spark和Firebase。

現在,如果我這樣做:

heroku local web

並轉到localhost:5000 ,出現404錯誤。 但是,該應用程序實際上並沒有崩潰。 它保持運行。

這與我做的時候不一樣:

heroku open

git add . git commit -m "x"git push heroku master

崩潰與“應用程序錯誤”, 給我這個:

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=

這些是我唯一的錯誤。 先前的錯誤是昨天的日志。

我不確定是什么問題。 我懷疑這與shadowJar 但是我不確定。

我發現了問題所在。 使用git push Heroku master部署到gradlew shadowJar時,我不得不從gradlew clean stage更改構建方法。

我是如何做到的在文檔中提到:

Heroku config:set GRADLE_TASK="shadowJar"

現在,每次執行git push Heroku master ,它都不會運行gradlew clean stage ,而是gradlew shadowJar ,我用來將依賴項包含到Java Web應用程序中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM