Heroku上的Java web应用程序运行,但不';不回答
我在Heroku上部署了一个带有Spark框架的应用程序。它在Heroku上成功构建,服务器启动,但当我尝试从服务器获取响应时,我收到HTTP 503,我的日志中出现以下H14错误: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
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代码。我试图从邮递员那里得到一些线索。不,请求没有超时。