Vertx: допустимый yaml вызывает исключение нулевого указателя в OpenAPI3RouterFactory - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть 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)
...