Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
java电报机器人工作90秒后Heroku崩溃_Java_Maven_Heroku_Telegram Bot - Fatal编程技术网

java电报机器人工作90秒后Heroku崩溃

java电报机器人工作90秒后Heroku崩溃,java,maven,heroku,telegram-bot,Java,Maven,Heroku,Telegram Bot,我使用这个api编写了java电报机器人。我在我的电脑上测试了一下,效果很好。所以我决定在Heroku上测试它,然而,在90秒后,它崩溃了(前90秒运行良好)。Heroku日志: 2018-07-09T08:01:45.000000+00:00 app[api]: Build succeeded 2018-07-09T08:01:46.940201+00:00 heroku[web.1]: Starting process with command `java -Dserver.port=189

我使用这个api编写了java电报机器人。我在我的电脑上测试了一下,效果很好。所以我决定在Heroku上测试它,然而,在90秒后,它崩溃了(前90秒运行良好)。Heroku日志:

2018-07-09T08:01:45.000000+00:00 app[api]: Build succeeded
2018-07-09T08:01:46.940201+00:00 heroku[web.1]: Starting process with command `java -Dserver.port=18914 -jar target/AllaBot-1.0.0.jar`
2018-07-09T08:01:49.163121+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2018-07-09T08:01:49.166682+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -Dfile.encoding=UTF-8
2018-07-09T08:03:17.028453+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2018-07-09T08:03:17.028604+00:00 heroku[web.1]: Stopping process with SIGKILL
2018-07-09T08:03:17.121323+00:00 heroku[web.1]: Process exited with status 137
2018-07-09T08:03:17.140915+00:00 heroku[web.1]: State changed from starting to crashed
我的文件:

web: java -Dserver.port=$PORT -jar target/AllaBot-1.0.0.jar
据我所知,我需要在我的项目中更改端口,不是吗?我试着使用一些来自互联网的技巧,但它们对我不起作用

错误R10(启动超时)->Web进程在启动后90秒内绑定到$PORT失败

错误告诉我们您需要监听heroku将提供给我们的端口。那么,让我们开始吧

    public class Bot extends TelegramLongPollingBot {
    private static final String TOKEN = System.getenv("TOKEN");
    private static final String BOT_USERNAME = System.getenv("BOT_USERNAME");
    private static final String PORT = System.getenv("PORT");

    public void onUpdateReceived(Update update) {

    }

    public String getBotUsername() {
        return BOT_USERNAME;
    }

    public String getBotToken() {
        return TOKEN;
    }

    public static void main(String[] args) {
        ApiContextInitializer.init();
        TelegramBotsApi api = new TelegramBotsApi();
        try {
            api.registerBot(new Bot());
        } catch (TelegramApiRequestException e) {
            e.printStackTrace();
        }

        try (ServerSocket serverSocket = new ServerSocket(Integer.valueOf(PORT))) {
            while (true) {
                Socket clientSocket = serverSocket.accept();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

谢尔盖·尼克(Sergey Nik)的回答在浪费大量时间试图修复R10错误后对我帮助很大。我可以将Procfile附加到根目录中,如下所示:

web: java $JAVA_OPTS -Dserver.port=$PORT -jar target/<custom-bot>.jar
web:java$java\u OPTS-Dserver.port=$port-jar target/.jar