Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku上的Java web应用程序运行,但不';不回答_Java_Heroku - Fatal编程技术网

Heroku上的Java web应用程序运行,但不';不回答

Heroku上的Java web应用程序运行,但不';不回答,java,heroku,Java,Heroku,我在Heroku上部署了一个带有Spark框架的应用程序。它在Heroku上成功构建,服务器启动,但当我尝试从服务器获取响应时,我收到HTTP 503,我的日志中出现以下H14错误: 2019-03-10T17:52:44.983359+00:00 heroku[servergossip.1]:重新启动 2019-03-10T17:52:45.299269+00:00 heroku[servergossip.1]:状态从“开始”更改为“开始” 2019-03-10T17:52:46.338372

我在Heroku上部署了一个带有Spark框架的应用程序。它在Heroku上成功构建,服务器启动,但当我尝试从服务器获取响应时,我收到HTTP 503,我的日志中出现以下H14错误:

2019-03-10T17:52:44.983359+00:00 heroku[servergossip.1]:重新启动
2019-03-10T17:52:45.299269+00:00 heroku[servergossip.1]:状态从“开始”更改为“开始”
2019-03-10T17:52:46.338372+00:00 heroku[servergossip.1]:使用SIGTERM停止所有进程
2019-03-10T17:52:46.000000+00:00应用程序[api]:构建成功
2019-03-10T17:52:46.769383+00:00 heroku[servergossip.1]:进程已退出,状态为143
2019-03-10T17:52:48.416183+00:00Heroku[servergossip.1]:使用命令“java$java_OPTS-cp target/classes:target/dependency/*Main”启动进程——端口37274`
2019-03-10T17:52:49.054556+00:00 heroku[servergossip.1]:状态从启动更改为启动
2019-03-10T17:52:51.513243+00:00应用程序[servergossip.1]:选择的JAVA工具选项:-Xmx300m-Xss512k-XX:CICompilerCount=2-Dfile.encoding=UTF-8
...
2019-03-10T17:52:52.672327+00:00应用程序[servergossip.1]:信息:已启动ServerConnector@3ee6bd4d{HTTP/1.1}{0.0.0.0:37274}
2019-03-10T17:53:09.078587+00:00 heroku[路由器]:at=错误代码=H14 desc=“没有web进程运行”方法=发布路径=“/bot”主机=服务器八卦。herokuapp.com请求\u id=45e0301a-3c82-495e-830d-2db0b0d1f9ef fwd=“87.240.189.18”dyno=connect=service=status=503字节=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这样的命令,但什么也没发生。 那么问题出在哪里呢?

您当前定义了一个名为
servergossip
的进程类型。那没有多大意义。将其更改为
web
流程:

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

如您所见,您的服务是在
0.0.0.0:37274
上启动的。您正在向Heroku上的哪个端口发送连接到服务器的请求?@vancleff,这无关紧要。Heroku提供了一个应用程序必须通过
port
环境变量使用的端口,但其路由器将请求从标准端口80或443路由到应用程序。端口37274根本不可能响应。什么是“但当我试图从服务器获取响应时,什么都没有发生”呢?你是如何得到回应的?“什么都没发生”是什么意思?请求是否刚好超时?它是否返回非200 HTTP响应代码?你在日志中看到什么了吗?@Chris,是的,它返回非200代码。当我尝试获取响应时,服务器日志创建行:heroku[router]:at=error code=H14 desc=“没有运行的web进程”@Chris,“什么都没有发生”意味着服务器返回503代码。我试图从邮递员那里得到一些线索。不,请求没有超时。