Com Smoketurner dropwizard-swagger 与 dropwizard 1.1.4 在specFilter 类中抛出空指针异常

Kar*_*rni 5 spring java-8 dropwizard swagger-2.0

我正在尝试将 DropWizard 版本从 升级0.9.21.1.4,然后更改 com.smoketurner dropwizard-swagger 1.1.1-1下载依赖项:

io\swagger\swagger-jersey2-jaxrs\1.5.15\swagger-jersey2-jaxrs-1.5.15.jar
io\swagger\swagger-jaxrs\1.5.15\swagger-jaxrs-1.5.15.jar
io\swagger\swagger-core\1.5.15\swagger-core-1.5.15.jar
io\swagger\swagger-models\1.5.15\swagger-models-1.5.15.jar
io\swagger\swagger-annotations\1.5.15\swagger-annotations-1.5.15.jar
Run Code Online (Sandbox Code Playgroud)

我的应用程序使用 Spring 框架进行操作。在点击 swagger 屏幕时,它显示 500 错误,但有以下异常 -

27-Sep-2017 14:16:31:514 | ERROR | dw-50 - GET /swagger.json | i.d.j.e.LoggingExceptionMapper | Error handling a request: 94c37d34407485e8
    ! java.lang.NullPointerException: null
    ! at io.swagger.core.filter.SpecFilter.filter(SpecFilter.java:47)
    ! at io.swagger.jaxrs.listing.BaseApiListingResource.process(BaseApiListingResource.java:130)
    ! at io.swagger.jaxrs.listing.BaseApiListingResource.getListingJsonResponse(BaseApiListingResource.java:167)
    ! at io.swagger.jaxrs.listing.ApiListingResource.getListing(ApiListingResource.java:33)
    ! at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ! at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    ! at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ! at java.lang.reflect.Method.invoke(Method.java:498)
    ! at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
    ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
    ! at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
    ! at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
    ! at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
    ! at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
    ! at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
    ! at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
    ! at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    ! at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    ! at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    ! at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    ! at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    ! at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
    ! at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
    ! at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
    ! at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
    ! at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
    ! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
    ! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
    ! at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
Run Code Online (Sandbox Code Playgroud)

示例 dropwizard-swagger 应用程序工作得非常好,但是当集成到我的应用程序中时不会显示。通过 Postman 等尝试时,端点工作正常。

请帮忙。

ozi*_*jnr 4

当 drop Wizard swagger 尝试查找您的资源但找不到它时,会发生此问题,这可能是您在服务器配置 yaml 文件中指定了错误的资源包,或者您根本没有资源包,因此它找不到它。