简体   繁体   中英

Java web application blank page on heroku but runs locally

My web app (spark java) runs fine locally but once deployed to Heroku gives me a blank page.

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

Here are the logs

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

My Procfile

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

In the logs this is looking like the culprit

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

but from other solutions on SO indicated i should add the following below to the procfile which i did;

-Dserver.port=$PORT  

Im not sure whether this is the only problem but this would be a start.

I would really appreciate some pointers

I don't know if Spark honors the -Dserver.port option. I've set the port explicitly in Java code:

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

You can see the full example on Github .

You can test it locally by running heroku local web , and it should bind to port 5000. If it does not, then it won't work on Heroku.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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