有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java@RestController在调用时总是返回404

我有两个控制器(UserController和ClientController),两个控制器都位于同一个包(com.myapp.controllers.identity)上,我的主应用程序文件位于父包(com.myapp)上

我首先创建ClientController,它工作得很好。稍后,我创建UserController。当我调用UserController时,它总是返回404

这是我的控制器文件和主应用程序文件的片段

应用程序。爪哇

package com.myapp;

@SpringBootApplication
public class Application {

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

}

客户端控制器。爪哇

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) {

    }
}

用户控制器。爪哇

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) 个答案

  1. # 1 楼答案

    usercontroller中有一个简单的问题,那就是@GetMapping(value = "/users/client/:clientId")捕获参数的格式

    spring中不支持这种参数,正如@chrylis-on-stroke所提到的那样

    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) 
        {
    
        }
    }