[英]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.