简体   繁体   English

Heroku上的Java Web应用程序运行但无法回答

[英]Java web app on Heroku runs but doesn't answer

I deployed an app with Spark framework on Heroku. 我在Heroku上部署了带有Spark框架的应用程序。 It was built successfully on Heroku and the server started, but when I try to get a response from the server I receive HTTP 503 and I get the following H14 error in my logs: 它是在Heroku上成功构建的,并且服务器已启动,但是当我尝试从服务器获取响应时,收到HTTP 503,并且在日志中出现以下H14错误:

2019-03-10T17:52:44.983359+00:00 heroku[servergossip.1]: Restarting
2019-03-10T17:52:45.299269+00:00 heroku[servergossip.1]: State changed from up to starting
2019-03-10T17:52:46.338372+00:00 heroku[servergossip.1]: Stopping all processes with SIGTERM
2019-03-10T17:52:46.000000+00:00 app[api]: Build succeeded
2019-03-10T17:52:46.769383+00:00 heroku[servergossip.1]: Process exited with status 143
2019-03-10T17:52:48.416183+00:00 heroku[servergossip.1]: Starting process with command `java $JAVA_OPTS -cp target/classes:target/dependency/* Main --port 37274`
2019-03-10T17:52:49.054556+00:00 heroku[servergossip.1]: State changed from starting to up
2019-03-10T17:52:51.513243+00:00 app[servergossip.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
...
2019-03-10T17:52:52.672327+00:00 app[servergossip.1]: INFO: Started ServerConnector@3ee6bd4d{HTTP/1.1}{0.0.0.0:37274}
2019-03-10T17:53:09.078587+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=POST path="/bot" host=servergossip.herokuapp.com request_id=45e0301a-3c82-495e-830d-2db0b0d1f9ef fwd="87.240.189.18" dyno= connect= service= status=503 bytes= protocol=https

My Procfile file: 我的Procfile文件:

servergossip: java $JAVA_OPTS -cp target/classes:target/dependency/* Main --port $PORT

Code from Spark example: Spark示例中的代码:

public class Main {
    private static final Logger LOG = LoggerFactory.getLogger(Main.class);
    public static void main(String[] args) {

        port(getHerokuAssignedPort());

        get("/bot", (req, res) -> {
            return "hi";
        });
    }

    static int getHerokuAssignedPort() {
        ProcessBuilder processBuilder = new ProcessBuilder();
        if (processBuilder.environment().get("PORT") != null) {
            return Integer.parseInt(processBuilder.environment().get("PORT"));
        }
        return 4567;
    }

}

I used commands like heroku:scale *someproject* = 1 , but nothing happens. 我使用了诸如heroku:scale *someproject* = 1 ,但没有任何反应。 So what's the problem? 所以有什么问题?

Your Procfile currently defines a process type called servergossip . 您的Procfile当前定义了一个名为servergossip的进程类型。 That doesn't make much sense. 那没有多大意义。 Change it to a web process: 将其更改为web流程:

web: java $JAVA_OPTS -cp target/classes:target/dependency/* Main --port $PORT

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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