Избавляя исключение в методе, отмеченном @PostConstruct в отмеченном bean-компоненте @Startup, в настоящее время я могу дать предупреждение при развертывании приложения на сервере Glassfish 3.1. Тем не менее, он остается развернутым (поэтому он входит в список приложений), и сообщение об ошибке является довольно расплывчатым, а не сообщение, указанное с исключением.Сделать неудачу развертывания с настраиваемой ошибкой в Glassfish 3.1
Я хочу, чтобы развертывание завершилось неудачно и дайте соответствующее сообщение, чтобы точно указать, что пошло не так. Является ли это выполнимым из стандартного Java EE без настройки сервера Glassfish? И если да, то как?
Текущая настройка - одна с сервером приложений домена и двумя экземплярами.
В настоящее время данное сообщение является следующая
Warning Command succeeded with Warning
"http://localhost:4848/management/domain/applications/application/applicationname" created successfully. WARNING: Command _deploy did not complete successfully on server instance instance1: remote failure: Failed to load the application on instance instance1. The application will not run properly. Please fix your application and redeploy. Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details. WARNING: Command _deploy did not complete successfully on server instance instance1: remote failure: Failed to load the application on instance instance1. The application will not run properly. Please fix your application and redeploy. Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details.
Пример кода, используемый в @PostConstruct
@PostConstruct
public void init() throws ExceptionInInitializerError {
throw new ExceptionInInitializerError("Don't deploy!");
}
также для
@PostConstruct
public void init() throws Exception {
throw new Exception("Don't deploy!");
}
То же самое происходит в случае RuntimeException
@PostConstruct
public void init() {
throw new RuntimeException("Don't deploy!");
}
Вы уверены, что это бросать пользовательских исключений, а не 'NullPointerException' где-то еще? Не могли бы вы разместить важные части вашего метода @PostConstruct? –
Я добавил два примера. – Kristof
В документации указано * «Метод НЕ ДОЛЖЕН выдавать проверенное исключение». *. Что произойдет, если вы выбросите «RuntimeException»? –