Heroku 上的 Java Web 应用程序运行但没有响应

我在 Heroku 上部署了一个带有 Spark 框架的应用程序。它在 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

我的Procfile文件:


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

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;

    }


}

我使用了类似的命令heroku:scale *someproject* = 1,但没有任何反应。所以有什么问题?


慕妹3242003
浏览 135回答 1
1回答

噜噜哒

您Procfile当前定义了一个名为servergossip. 这没有多大意义。将其更改为一个web过程:web: java $JAVA_OPTS -cp target/classes:target/dependency/* Main --port $PORT
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java