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 (将#修改为@)