Какие исключения убивает ваше веб-приложение в Java - PullRequest
0 голосов
/ 23 июня 2010

У меня есть веб-приложение, которое должно выполнить некоторую проверку, прежде чем пользователю разрешат использовать приложение.Я хочу выдать какое-то исключение, которое отменяет развертывание или убивает веб-приложение, если эти проверки не пройдены, однако я не уверен, есть ли какие-либо исключения, которые я могу выдать, которые убивают веб-приложение RuntimeException()? или если мне нужно System.exit(0)

Как правильно принудительно убить / остановить веб-приложение?

Ответы [ 4 ]

4 голосов
/ 23 июня 2010

Любое исключение, выданное в методе init () сервлета, загруженного в web.xml, приведет к удалению веб-приложения.

3 голосов
/ 23 июня 2010

например. в Tomcat. Вы можете предоставить вашему приложению доступ к менеджеру, а когда вы хотите отменить его, разрешите ему вызвать http://localhost:8080/manager/undeploy?path=/examples Я думаю, что вы также можете достичь этого через прокси-сервер jmx.

Для JBoss вы можете, например, посмотрите на реализацию jsr-88 (которая сокращается в JEE6, но ... возможно, jboss сохраняет ее) или также используйте JMX (т.е. через RMI или около того)

примечание: отмена развертывания веб-приложения из-за странной аутентификации кого-либо является странным, любой следующий пользователь не сможет получить доступ к приложению

note2: И действительно, как указано выше, вызов System.exit в веб-контейнере уничтожит весь контейнер и, следовательно, любое другое приложение, работающее в нем.

2 голосов
/ 23 июня 2010

Предположение

Вы сказали

сделать некоторую проверку, прежде чем пользователю будет разрешено использовать приложение

звучит для меня как экран входа в систему иможет быть, некоторые дополнительные проверки среды (licensing, os, ...).

Если это так:

Просто не позволяйте пользователю войти в систему, но дайте ему подсказку, что не так (например,: «Купить лицензию»)

Если это неверно:

Дайте нам больше информации о типе вашего веб-приложения (интерактивно ли это? Это веб-служба? ...)

1 голос
/ 23 июня 2010

Не используйте System.exit (0), это также убьет ваш контейнер !. RuntimeException также не остановит запуск приложения.

Я бы сохранял где-нибудь результат проверки и использовал бы ее всякий раз, когда мне нужно было обработать запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...