Я разрабатываю приложение Spring MVC с REST API.
У меня есть этот метод в контроллере:
@RequestMapping(value="/roomId/{roomId}",produces = "application/json")
public List<DayStatisticDto> findBySiteAndRoom(@PathVariable("roomId") String roomId, @RequestParam("timestamp") String timestamp, @RequestParam("pageSize") Integer pageSize) throws ParseException {
List<DayStatisticDto> dayStatisticDtos = dayStatisticService.latestDailyStatisticsForRoom(getCurrentUserSiteCode(), roomId, pageSize, timestamp, false);
return dayStatisticDtos;
}
Когда я делаю этот запрос на получение:
С этими параметрами запроса:
- Принять: приложение / json
- Принятие кодировки: gzip, deflate, sdch, br
- Accept-Language: fr-FR, fr; q = 0,8, en-US; q = 0,6, en; q = 0,4
- Cache-Control: без кеширования
- Cookie: _ga = GA1.1.486025197.1475764350; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- Хост: localhost: 8080
- Пользовательский агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 54.0.2840.71 Safari / 537.36
В качестве ответа я получаю правильный объект JSON.
Но когда я меняю параметр roomId с I1.A.122 на I1.A.123:
С этими параметрами запроса:
- Принять: приложение / json
- Принятие кодировки: gzip, deflate, sdch, br
- Accept-Language: fr-FR, fr; q = 0,8, en-US; q = 0,6, en; q = 0,4
- Cache-Control: без кеширования
- Cookie: _ga = GA1.1.486025197.1475764350; JSESSIONID = 6716A5824088BC0F46A6B74D5FB25A3E
- Хост: localhost: 8080
- Пользовательский агент: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 54.0.2840.71 Safari / 537.36
Я получаю код ошибки 406 - неприемлемо
Я использую такие запросы везде в проекте, и у меня никогда не было таких проблем. Параметр roomId по-прежнему имеет обычное целочисленное значение. Как это может вызвать проблему с Spring Mvc? Заголовки и рабочий код остались прежними.
Когда я помещаю точку останова в первую строку метода findBySiteAndRoom, в первом случае она достигает точки. Но во втором случае он возвращает код ошибки 406 до достижения точки останова.
Спасибо заранее за вашу помощь.