Мне удалось интернационализировать запрос веб-страницы контроллера с помощью
@RequestMapping(value="/image")
public String image(@RequestHeader(name=HEADER_CONSTANTS.ACCEPT_LANGUAGE, required=false) String al) {
В списке параметров. Однако я попытался поместить это в ResponseEntityExceptionHandler
, и это не сработало.
@ControllerAdvice(basePackages="com.example.apis")
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(ApiException.class)
protected ResponseEntity<Object> handleApiException(ApiException ex, @RequestHeader(name=HEADER_CONSTANTS.ACCEPT_LANGUAGE, required=false) String al) {
2019-05-13 21: 59: 59.193 ПРЕДУПРЕЖДЕНИЕ 16052 --- [nio-8080-exec-1] .mmaExceptionHandlerExceptionResolver: не удалось вызвать метод @ExceptionHandler: protected org.springframework.http.ResponseEntity com.example. apis.RestExceptionHandler.handleApiException (com.example.apis.ApiException, java.lang.String)
java.lang.IllegalStateException: не удалось разрешить параметр метода по индексу 1 в защищенном org.springframework.http.ResponseEntity com.example.apis.RestExceptionHandler.handleApiException (com.example.apis.ApiException, java.lang.String) : Нет подходящего преобразователя для аргумента 1 типа 'java.lang.String'
Работает без параметра @RequestHeader
. Как я могу получить клиентский HTTP-заголовок Accept-Language
в обработчике исключений для запросов JSON API?
Spring Boot 1.5.20