Я хочу создать RuntimeException с настройкой HTTP Status и Text.Существует textService, который создает текст.
Я прочитал так много потоков, но все еще не получил его.
Я не могу использовать autowired textService в конструкторе, как это:
@Autowired
public myException(String param) {
this.param = ts.getMsg(param);
}
, потому что во время строительства у меня нет автопроводного объекта.Это вполне понятно.В некоторых темах, которые я читаю, я должен перезаписать функцию getMessage, которая кажется мне вполне логичной и приводит к следующему:
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
public class myException extends RuntimeException {
@Autowired
private transient textService ts;
private String param = "default";
public myException(String param) {
this.param = param;
}
@Override
public String getMessage() {
return ts.getMsg(param);
}
}
Но, бросая ее
throw new myException("foo");
, я получаю страницу ошибок справильный статус, но без текста.
Это происходит не в контроллере, а в HTTPMessageConverter, поэтому я не могу напрямую получить доступ к объекту ответа.
Использование Spring WebMVC 4.3.4.RELEASE.
Другие идеи, которые у меня были (но я не понял, работает):
- Создание нового исключения в методе @ PostContruct-Method
- Как-то получить доступаннотация-причина для класса
Потоки, которые я прочитал (и многое другое)
Скорее всего, решение где-то есть, но я, очевидно, слеп, поэтому, может быть, какой-нибудь дружелюбный человек может открыть мне глаза.