• Какая правильная архитектура развертывания приложения с REST сервисом?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А какие проблемы с томкатом? В сервлетах есть такое понятие, как листенеры. Определяете листенер, который реализует ServletContextListener. В нем заводите свои треды, которые живут, пока живет ваше приложение в томкате. Прописываете его в web.xml. В ваших рест-сервисах достаточно получить ServletContext и оттуда забирать созданный инстанс класса.
    <listener>
     <listener-class>
     my.long.life.clazz.Listener
     </listener-class>
    </listener>


    Вот подробно разобран листенер (пункт 5 если чо) - https://www.journaldev.com/1945/servletcontextlist...

    Ну или плюнуть на сервлеты к херам собачьим и сделать все на javalin или jooby! (мой поросячий выбор)
    import io.javalin.Javalin;
    
    public class HelloWorld {
        public static void main(String[] args) {
            MyTelegramBot mybot = new MyTelegramBot(); // тут херачим телеграм
            Javalin app = Javalin.create().start(7000); // тут запускаем сервер
            app.get("/", ctx -> ctx.result("Hello World")); // тут херачим свои REST
            app.put("/myrest", ctx -> mybot.send(ctx));
        }
    }
    Ответ написан