У меня есть yaml:
openapi: 3.0.0
info:
version: "1.0-Snapshot"
title: "Hub-Interface v2.5"
Я не могу поделиться полным файлом, но знаю, что YAML анализируется и отображается правильно, когда я вставляю его на https://editor.swagger.io/
Нокогда я вызываю getRouter () в следующем, это вызывает исключение
...
OpenAPI3RouterFactory.create(vertx, "CoD_Hub-interface-description.yaml", ar -> {
// The router factory instantiation could fail
if (!ar.succeeded()) {
log.error("===== OpenAPI3RouterFactory create failed in APIServerVerticle", ar.cause());
startFuture.fail(ar.cause());
return;
}
OpenAPI3RouterFactory factory = ar.result();
// ...
factory.addHandlerByOperationId("receive", this::receive);
factory.addSecurityHandler("basicAuth", this::handleSecurity);
factory.addSecurityHandler("client", this::handleSecurity);
Router router1 = factory.getRouter();
Я получаю исключение нулевого указателя:
2018-09-25 16:15:30,667 [vert.x-eventloop-thread-6] WARN com.networknt.schema.JsonMetaSchema - Unknown keyword example - you should define your own Meta Schema. If the keyword is irrelevant for validation, just use a NonValidationKeyword
Sep 25, 2018 4:15:30 PM io.vertx.core.impl.ContextImpl
SEVERE: Unhandled exception
java.lang.NullPointerException
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:214)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.replaceRef(OpenApi3Utils.java:267)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:215)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:236)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.generateSanitizedJsonSchemaNode(OpenApi3Utils.java:209)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.parseRequestBody(OpenAPI3RequestValidationHandlerImpl.java:473)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.parseOperationSpec(OpenAPI3RequestValidationHandlerImpl.java:104)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.<init>(OpenAPI3RequestValidationHandlerImpl.java:87)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RouterFactoryImpl.getRouter(OpenAPI3RouterFactoryImpl.java:229)
at com.vulog.vwgateway.VWAPIServerVerticle.lambda$start$3(VWAPIServerVerticle.java:71)
Мой файл .yaml содержит примеры, которые должны бытьдействительный.Но даже без них я получаю исключение нулевого указателя без особой информации:
Sep 25, 2018 4:25:16 PM io.vertx.core.impl.ContextImpl
SEVERE: Unhandled exception
java.lang.NullPointerException
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:214)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.replaceRef(OpenApi3Utils.java:267)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:215)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.walkAndSolve(OpenApi3Utils.java:236)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenApi3Utils.generateSanitizedJsonSchemaNode(OpenApi3Utils.java:209)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.parseRequestBody(OpenAPI3RequestValidationHandlerImpl.java:473)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.parseOperationSpec(OpenAPI3RequestValidationHandlerImpl.java:104)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RequestValidationHandlerImpl.<init>(OpenAPI3RequestValidationHandlerImpl.java:87)
at io.vertx.ext.web.api.contract.openapi3.impl.OpenAPI3RouterFactoryImpl.getRouter(OpenAPI3RouterFactoryImpl.java:229)
at com.vulog.vwgateway.VWAPIServerVerticle.lambda$start$3(VWAPIServerVerticle.java:71)