Я хочу запустить только один экземпляр моего веб-приложения, развернутого в tomcat 5.5, как его реализовать.
например, если в системе есть 2 сервера tomcat, каждый из которых имеет имя веб-приложения xxx, я не хочу, чтобы два приложения работали параллельно, только одно должно запускаться одновременно.
предположим, если пользователь обращается к index.jsp внутри tomcat 1, а после этого, когда он пытается получить доступ к index.jsp из tomcat 2, этого не должно происходить
Вот один workaround
способ сделать это (при условии, что оба экземпляра Tomcat находятся на одном хосте):
webapp
каталог обоих TomcatscontextInitialized
метод начать ServerSocket на конкретный порт, например: 5555Таким образом, как только вы запустите первый экземпляр приложения, он начнет прослушивать этот порт. 5555
. Теперь, когда вы запускаете 2-й экземпляр, он, очевидно, не может получить порт 5555
поскольку он уже используется и приведет к исключению RuntimeException, что, в свою очередь, заставит Tomcat ** не развертывать ** 2-й экземпляр того же веб-приложения.