java - Swagger 与 Play2 集成

标签 java playframework swagger swagger-play2

我关注了https://github.com/swagger-api/swagger-play/blob/master/play-2.7/swagger-play2/README.md并将 swagger-play2 版本 1.7.1 与我的 play 2.7 应用程序集成。访问/swagger.json 端点时,我收到 swagger 库抛出的以下错误。

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[NullPointerException: null]]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:323)
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:243)
at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:382)
at play.core.server.AkkaHttpServer$$anonfun$1.applyOrElse(AkkaHttpServer.scala:380)
at scala.concurrent.Future.$anonfun$recoverWith$1(Future.scala:417)
at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:41)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:85)
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:44)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

Caused by: java.lang.NullPointerException: null
    at play.modules.swagger.ApiListingCache$.$anonfun$listing$1(ApiListingCache.scala:15)
    at scala.Option.orElse(Option.scala:306)
    at play.modules.swagger.ApiListingCache$.listing(ApiListingCache.scala:11)
    at controllers.SwaggerBaseApiController.getResourceListing(ApiHelpController.scala:123)
    at controllers.SwaggerBaseApiController.getResourceListing$(ApiHelpController.scala:109)
    at controllers.ApiHelpController.getResourceListing(ApiHelpController.scala:68)
    at controllers.ApiHelpController.$anonfun$getResources$1(ApiHelpController.scala:75)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
    at play.api.mvc.ActionBuilderImpl.invokeBlock(Action.scala:483)
    at play.api.mvc.ActionBuilderImpl.invokeBlock(Action.scala:481)
    at play.api.mvc.ActionBuilder$$anon$10.apply(Action.scala:420)
    at play.api.mvc.Action.$anonfun$apply$2(Action.scala:97)
    at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$4(Accumulator.scala:175)
    at scala.util.Try$.apply(Try.scala:213)
    at play.api.libs.streams.StrictAccumulator.$anonfun$mapFuture$3(Accumulator.scala:175)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
    at scala.Function1.$anonfun$andThen$1(Function1.scala:57)
    at play.api.libs.streams.StrictAccumulator.run(Accumulator.scala:208)
    at play.core.server.AkkaHttpServer.$anonfun$runAction$4(AkkaHttpServer.scala:376)
    at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
    at akka.http.scaladsl.util.FastFuture$.$anonfun$transformWith$3(FastFuture.scala:51)

看起来 ScannerFactory 中的 SCANNER 静态字段为空。

我在这里错过了什么吗?谢谢。

最佳答案

看起来问题出在启用 Play 的模块上,由于某种原因,我启用模块的嵌套方式不起作用。为 play.modules.enabled += "play.modules.swagger.SwaggerModule"添加了单独的行,有效。

关于java - Swagger 与 Play2 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594220/

相关文章:

java - 在 hibernate @Formula中使用自定义方言功能

java - 从两个类内部加入 hibernate

scala - 如何在 Play 2.4 和 `controllers.Default.redirect` 中使用 `InjectedRoutesGenerator`

dependencies - 在dependencies.yml 中使用环境变量?

java - Swagger 集成多个 jaxrs 服务器

java - 为什么我不能使用 String.format() 来格式化来自 Integer.toBinaryString() 的字符串?

javascript - 将javascript变量放入 Play 函数

sdk - 有没有人在生产中使用 Swagger Codegen 或 OpenAPI Generator SDK?

visual-studio - 如何在 Swagger 文档页面中包含 Controller 类的 XML 注释

java - 从波形获取声功率