如何解决SpringBoot MVC:发布请求时出现 404 错误
在我的 SpringBoot 应用程序中,Api 和模型是由 swagger-codegen 自动生成的。 Api 看起来像这样:
@Api(value = "",description = "the API")
public interface DefaultApi {
default Optional<NativeWebRequest> getRequest() {
return Optional.empty();
}
@ApiOperation(value = "",nickname = "createAppeal",notes = "",response = Appeal.class,tags={ "Appeals create",})
@RequestMapping(value = "/appeals",produces = "*/*",consumes = "application/json",method = RequestMethod.POST)
default ResponseEntity<Appeal> createAppeal(@ApiParam(value = "",required=true ) @RequestBody Appeal appeal) throws Exception {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
String exampleString = "
// JSON-example
";
ApiUtil.setExampleResponse(request,"*/*",exampleString);
break;
}
}
});
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
}
和控制器类:
package ru.voskhod.gpparf.integration.infodiode.source.controller;
@RestController
public class AppealController implements DefaultApi {
@Override
public ResponseEntity<Appeal> createAppeal(final Appeal appeal) throws
RequestHandleException {
log.debug("INCOME DATA IS {}",appeal.toString());
return ResponseEntity.ok(appeal);
}
}
主应用类:
@SpringBootApplication
@EnableWebMvc
@ComponentScan(basePackages = {"ru.voskhod.gpparf.integration.infodiode.source"})
public class InfodiodeServiceApplication {
public static void main(final String[] args) {
SpringApplication.run(InfodiodeServiceApplication.class,args);
}
}
网络连接属性是:
server:
port : 7577
(注意:我使用 7577 端口 - 而不是 8080-8090,作为部署在 SCDF 的应用程序,考虑到 Skipper 维护 7577、9000-9010 端口范围。)
当我提出请求时:
curl -H "Content-Type: application/json" -X POST -d { //JSON } http://localhost:7577/appeals
我收到 404 错误,例如:
{"timestamp":"2021-02-27T15:40:24.752+00:00","status":404,"error":"Not Found","mes
发布的 json 是正确的。我从 OpenApi-spesification 自动生成它,并在此基础上创建我的 Api。
当我使用其他端口时,“连接被拒绝”的错误发生了变化。从我得出的结论(考虑到 404 错误的本质),这个问题没有联系,但实际上我的控制器无法将收入请求映射到目标路径上。
我不明白,我做错了什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。