heroku 上的 Java Web 应用程序空白页面但在本地运行

标签 java heroku spark-java

我的网络应用程序 (spark java) 在本地运行良好,但一旦部署到 Heroku,就会出现空白页面。

    https://fathomless-garden-15009.herokuapp.com/fathomless-garden-15009

这是日志

2016-11-03T01:54:56.324006+00:00 heroku[web.1]: State changed from crashed to starting
2016-11-03T01:55:02.989594+00:00 heroku[web.1]: Starting process with command `   java -Dserver.port=34284 -jar build/libs/freebid-0.1.0-SNAPSHOT.jar`
2016-11-03T01:55:04.872996+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS     defaults based on dyno size. Custom settings will override them.
2016-11-03T01:55:04.876437+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx350m -Xss512k -Dfile.encoding=UTF-8
2016-11-03T01:55:04.970619+00:00 app[web.1]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
2016-11-03T01:55:04.970667+00:00 app[web.1]: SLF4J: Defaulting to no-operation (NOP) logger implementation
2016-11-03T01:55:04.970721+00:00 app[web.1]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2016-11-03T01:55:05.604913+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.604 [main] BuildInfo - Git commit is null 
2016-11-03T01:55:05.604806+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.603 [main] BuildInfo - Built on null by null 
2016-11-03T01:55:05.605942+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.605 [main] PropertyResolver - properties file /credentials.properties is missing or invalid
2016-11-03T01:55:05.605760+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.605 [main] PropertyResolver - properties file /environment-ex.properties is missing or invalid
2016-11-03T01:55:05.606112+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.606 [main] PropertyResolver - properties file /credentials-ex.properties is missing or invalid
2016-11-03T01:55:05.606259+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.606 [main] PropertyResolver - resolved devMode in environment.properties as true
2016-11-03T01:55:05.614766+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.614 [main] PropertyResolver - resolved httpServer.port in environment.properties as 3016
2016-11-03T01:55:05.614940+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.614 [main] PropertyResolver - resolved template.engine in environment.properties as reloadable
2016-11-03T01:55:05.705113+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.704 [main] PropertyResolver - failed to resolve heap.analytics.id
2016-11-03T01:55:05.731095+00:00 app[web.1]: [INFO ] 2016-11-03 01:55:05.730 [main] ApiController - Loading ObjectMapper
2016-11-03T01:56:33.511375+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2016-11-03T01:56:33.511626+00:00 heroku[web.1]: Stopping process with SIGKILL
2016-11-03T01:56:33.669397+00:00 heroku[web.1]: State changed from starting to crashed
2016-11-03T01:56:33.648115+00:00 heroku[web.1]: Process exited with status 137

我的资料

web: java -Dserver.port=$PORT -jar build/libs/freebid-0.1.0-SNAPSHOT.jar

在日志中,这看起来像是罪魁祸首

Web process failed to bind to $PORT within 90 seconds of launch
2016-11-03T01:56:33.511626+00:00 heroku[web.1]: Stopping process with SIGKILL

但是从 SO 上的其他解决方案来看,我应该将以下内容添加到我所做的 procfile 中;

-Dserver.port=$PORT  

我不确定这是否是唯一的问题,但这将是一个开始。

非常感谢一些指点

最佳答案

我不知道 Spark 是否支持 -Dserver.port 选项。我已经在 J​​ava 代码中明确设置了端口:

port(Integer.valueOf(System.getenv("PORT")));

你可以看到 full example on Github .

您可以通过运行 heroku local web 在本地测试它,它应该绑定(bind)到端口 5000。如果没有,那么它就不能在 Heroku 上运行。

关于heroku 上的 Java Web 应用程序空白页面但在本地运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393388/

相关文章:

java - 使用 Spock 的 Groovy 模拟文件工厂

java - 在soapui java API中加载外部请求文件

JavaFX TableView 标题高度

java - 使用 Java Spark 如何发送 html 文件作为响应

java - 在 Java 中使用 SQLite 选择变量

heroku - 在 Heroku 上测试 PostgreSQL PostGIS 的选项?

node.js - 在 Heroku 上迁移到 Node 0.4.7 有何影响?

python - 如何在Heroku上安装python opencv?

java - SparkJava 可变数量的参数

spark-java - SparkJava 变量范围