问题描述
在我的 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 (将#修改为@)