Лучшим вариантом является рефакторинг любой логики, используемой в методе doGet
, в отдельный метод, который можно вызывать как из init
, так и doGet
.
Если вы действительно не можете реорганизовать логику (что действительно является единственным хорошим вариантом), вы можете использовать некоторую фиктивную библиотеку. Google говорит, что фиктивные объекты Spring популярны.
Имея пригодную для использования реализацию HttpServletRequest
и HttpServletResponse
, создайте сервлет, загруженный load-on-startup
, и из его метода init
найдите соответствующий сервлет из текущего ServletContext
и вызовите doGet
с соответствующие объекты запроса и ответа. (Да, это довольно плохой клудж, но тебе придется сделать что-то вроде этого.)
Редактировать: Если вы не хотите взламывать файл WAR, возможно, вам следует проверить, есть ли в вашем контейнере сервлета возможность запуска каких-либо перехватов после повторного развертывания / развертывания веб-приложения.