Контекст приложения Spring не позволяет другим приложениям запускаться в том же контейнере сервлета - PullRequest
1 голос
/ 13 июля 2010

У меня есть два веб-приложения, работающие в одном контейнере сервлета ( Tomcat ), A и B. Эти два подключаются друг к другу с помощью Spring Remoting. При запуске B необходимо вызвать A, чтобы автоматически открыть соединение, это в основном очень простой вызов аутентификации.

Однако, поскольку B ( в моем случае ) загружается до A, контекст приложения B блокируется до тех пор, пока не будет запущено все приложение. Это означает, что приложение B будет зависать до тех пор, пока не истечет время ожидания и т. Д., И только после этого разрешено запускать A, однако в этот момент B не может подключиться к A, и требуемое соединение между двумя веб-приложениями не будет создано .

Итак, как мне обойти это? В настоящее время я перехватываю команду подключения с помощью InitializingBean, а контекст приложения инициализируется с помощью прослушивателя.

1 Ответ

0 голосов
/ 14 июля 2010

Мне на ум приходят два варианта:

  • Запускать два экземпляра Tomcat на разных портах.
  • выполнить аутентификацию в новом потоке (желательно с использованием ExecutorService).Таким образом, «основной» поток не будет блокироваться, и развертывание будет продолжено.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...