Com Smoketurner dropwizard-swagger with dropwizard 1.1.4在specFilter类中抛出Null Pointer异常

问题描述 投票:3回答:2

我正在尝试将DropWizard版本从0.9.2升级到1.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

我的应用程序使用Spring框架进行操作。在点击招摇屏幕时,它显示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)

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

请帮忙。

spring java-8 dropwizard swagger-2.0
2个回答
2
投票

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


0
投票

我有类似的堆栈跟踪,因为不同的原因,谷歌带我到这个问题。 如果您在SpecFilter中获取NPE,请检查您的资源类是否使用“@Api”注释

© www.soinside.com 2019 - 2024. All rights reserved.