Добавление нового параметра в существующий сервис Rest - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть существующий сервис Rest в бэкэнде Java, например:

@RequestMapping(value = "/service/{a}/{b}/{c}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public Response service(@PathVariable Long a, @PathVariable String b, @PathVariable String c, @RequestBody List<String> d)

Он вызывается JS в графическом интерфейсе как:

$http.post(
'/service/'
+ a + '/'
+ b + '/'
+ c,
d)

Мне просто нужно добавитьновый параметр "e", и попытался добавить его в качестве новой переменной пути:

@RequestMapping(value = "/service/{a}/{b}/{c}/{e}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public Response service(@PathVariable Long a, @PathVariable String b, @PathVariable String c, @PathVariable String e, @RequestBody List<String> d)
$http.post(
'/service/'
+ a + '/'
+ b + '/'
+ c + '/'
+ e,
d)

Но JS не может вызвать службу сейчас. Из того, что я могу сказать, это должно работать нормально. Я что-то упустил?

Запуск кода на Tomcat 8.5, доступ к GUI через Google Chrome версии 78.0.3904.87. В консоли появляются следующие ошибки:

Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.3/$rootScope/inprog?p0=%24apply
    at angular.min.js:6
    at r (angular.min.js:127)
    at n.$apply (angular.min.js:135)
    at HTMLDivElement.<anonymous> (angular.min.js:252)
    at HTMLDivElement.dispatch (jquery.min.js:3)
    at HTMLDivElement.r.handle (jquery.min.js:3)
    at FiberInvenInfoController.fiberInfo.disconnectAllCircuits (FiberInvenInfoController.js:714)
    at n.$scope.ok (ModalServiceFiberInfo.js:428)
    at fn (eval at compile (angular.min.js:212), <anonymous>:2:197)
    at f (angular.min.js:252)
(anonymous) @ angular.min.js:108
(anonymous) @ angular.min.js:80
$apply @ angular.min.js:135
(anonymous) @ angular.min.js:252
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
FiberInvenInfoController.fiberInfo.disconnectAllCircuits @ FiberInvenInfoController.js:714
$scope.ok @ ModalServiceFiberInfo.js:428
fn @ VM866:2
f @ angular.min.js:252
$eval @ angular.min.js:134
$apply @ angular.min.js:135
(anonymous) @ angular.min.js:252
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
angular.min.js:92

POST http://.../rest/fiber/disconnectCircuits/7977/11-04-2019/user/PD 404
(anonymous) @ angular.min.js:92
n @ angular.min.js:88
f @ angular.min.js:86
(anonymous) @ angular.min.js:120
$eval @ angular.min.js:134
$digest @ angular.min.js:132
$apply @ angular.min.js:135
(anonymous) @ angular.min.js:252
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Spring Boot не принимал изменения в новых или существующих контроллерах Rest. Удаление пакета по умолчанию из проекта и выполнение сборки проекта перед каждой публикацией в Tomcat решают проблему.

0 голосов
/ 02 ноября 2019

Возможно, ошибка в Spring, смотрите здесь: https://jira.spring.io/browse/SPR-6741 Это исправлено в v4.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...