Я не знаком с пружиной, но я сталкиваюсь с этой проблемой, где я сталкиваюсь с нулевой ошибкой в org.springframework.web.method.annotation.RequestHeaderMapMethodArgumentResolver.resolveArgument(RequestHeaderMapMethodArgumentResolver.java:72)
. Я смог случайно выяснить, что именно эта @RequestHeader
аннотациявызывает проблему, но не может понять, почему.Странно то, что он даже не выглядит как возвращаемый объект HttpHeaders
, который даже не используется в функции.Я сделал быстрый поиск, но не смог найти, нужна ли эта аннотация для этой функции.Вот оригинальный код для обработки запроса с этой проблемой
@RequestMapping(value = "/webforms/index.html", method = RequestMethod.GET)
public ModelAndView prepareView(HttpServletRequest request, @RequestParam(value="signoffId", required=false) Integer signoffId, @RequestHeader HttpHeaders headers) {
clearErrorsForNewRequest(request);
return prepareView(request, VIEW, signoffId);
}
Я пытался использовать @RequestHeaders
без HttpHeaders
, как, например,
@RequestMapping(value = "/webforms/index.html", method = RequestMethod.GET)
public ModelAndView prepareView(HttpServletRequest request, @RequestParam(value="signoffId", required=false) Integer signoffId, @RequestHeader String host) {
clearErrorsForNewRequest(request);
return prepareView(request, VIEW, signoffId);
}
, и я больше не получаю это исключение,Что здесь происходит?Я ясно вижу заголовки http, когда делаю запрос, почему я получаю это исключение весной?Существуют ли какие-то ограничения на то, какие запросы могут использовать объект HttpHeaders
???
Ниже показан заголовок моего запроса:
Кажется, это проблемный раздел, который я извлек из декомпилятора, за исключением того, что оно было сгенерировано в строке 72. Похоже, что nullpointerexception может исходить из webRequest
, но явно не выдает исключение в строке70
/* 70 */ for (Iterator<String> iterator =
webRequest.getHeaderNames(); iterator.hasNext();) {
/* 71 */ String headerName = (String)iterator.next();
/* 72 */ for (String headerValue : webRequest.getHeaderValues(headerName)) {
/* 73 */ result.add(headerName, headerValue);
/* */ }
/* */ }