@RestController всегда возвращает 404 при вызове - PullRequest
0 голосов
/ 07 мая 2020

У меня два контроллера (UserController и ClientController), оба контроллера расположены в одном пакете (com.myapp.controllers.identity), а мой основной файл приложения находится в родительском пакете (com.myapp).

Сначала я создаю ClientController, и он отлично работает. Позже я создаю UserController. Когда я вызываю UserController, он всегда возвращает 404.

Вот фрагмент файлов моих контроллеров и файл основного приложения

Application. java

package com.myapp;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

ClientController. java

package com.myapp.controllers.identity;

@RestController
@RequestMapping(value = "/api/identity")
@Validated
public class ClientController {

    @GetMapping(value = "/clients/{clientId}")
    public ResponseEntity<?> getClientByClientId(@PathVariable("clientId") String clientId) {

    }
}

UserController. java

package com.myapp.controllers.identity;

@RestController(value = "UserController")
@RequestMapping(value = "/api/identity")
@Validated
public class UserController {
    public static final Logger logger = LoggerFactory.getLogger(UserController.class.getName());

    @Autowired
    private UserService userService;

    @GetMapping(value = "/users/client/:clientId")
    public ResponseEntity<?> getAllUsersByClientId(@PathVariable String clientId) 
    {

    }
}

Кто-нибудь может помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 09 мая 2020

В вашем userControler есть одна простая проблема, и это @GetMapping(value = "/users/client/:clientId") ваш формат захвата параметра

этот тип параметра не поддерживается весной, поскольку @chrylis -on strike- упоминается

package com.myapp.controllers.identity;

@RestController(value = "UserController")
@RequestMapping(value = "/api/identity")
@Validated
public class UserController {
    public static final Logger logger = LoggerFactory.getLogger(UserController.class.getName());

    @Autowired
    private UserService userService;

    @GetMapping(value = "/{clientId}")
    public ResponseEntity<?> getAllUsersByClientId(@PathVariable String clientId) 
    {

    }
}
...