servertap-io / servertap

ServerTap is a REST API for Bukkit/Spigot/Paper Minecraft servers
https://servertap.io
MIT License
225 stars 57 forks source link

Errors in log about missing vault when opening swagger #175

Closed Shuro closed 1 year ago

Shuro commented 2 years ago

First off:

[13Sep2022 18:18:27.050] [Server thread/INFO] [ServerTap/]: Enabling ServerTap v0.3.1
[13Sep2022 18:18:27.066] [Server thread/INFO] [Minecraft/]: [ServerTap] No Vault plugin detected
[13Sep2022 18:18:27.188] [Server thread/WARN] [Minecraft/]: [ServerTap] TLS is not enabled.
[13Sep2022 18:18:27.199] [Server thread/INFO] [Minecraft/]: [ServerTap] Enabling CORS for *
[13Sep2022 18:18:27.219] [Server thread/WARN] [io.javalin.Javalin/]: JDK15 and Kotlin 1.5 break reflection in different ways - the OpenAPI plugin will not work properly. Please visit https://github.com/tipsy/javalin/issues/1193 if you want to help fix this issue.
[13Sep2022 18:18:27.219] [Server thread/WARN] [io.javalin.Javalin/]: You can disable this warning by doing `OpenApiVersionUtil.logWarnings = false`
[13Sep2022 18:18:27.299] [Server thread/INFO] [org.eclipse.jetty.util.log/]: Logging initialized @81544ms to org.eclipse.jetty.util.log.Slf4jLog
[13Sep2022 18:18:27.439] [Server thread/INFO] [io.javalin.Javalin/]: Starting Javalin ...
[13Sep2022 18:18:27.446] [Server thread/INFO] [io.javalin.Javalin/]: You are running Javalin 4.6.4 (released July 8, 2022).
[13Sep2022 18:18:27.916] [Server thread/INFO] [io.javalin.Javalin/]: Static file handler added: StaticFileConfig(hostedPath=/, directory=META-INF/resources/webjars, location=CLASSPATH, precompress=false, aliasCheck=null, headers={Cache-Control=max-age=31622400}). File system location: 'jar:file:/home/container/plugins/ServerTap-0.3.1.jar!/META-INF/resources/webjars'
[13Sep2022 18:18:27.916] [Server thread/INFO] [io.javalin.Javalin/]: Listening on http://localhost:9998/
[13Sep2022 18:18:27.916] [Server thread/INFO] [io.javalin.Javalin/]: Javalin started in 485ms \o/

I got two exceptions while trying out the swagger on a custom port on servertap. First: Can't read from file http://myserverip:9998/swagger-docs"

and exceptions in the console. I don't have the vault plugin, since I thought it is a soft-dependency:

[13Sep2022 18:59:59.973] [JettyServerThreadPool-157/ERROR] [io.javalin.Javalin/]: Exception occurred while servicing http-request
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1194) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:89) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JettyServer$start$wsAndHttpHandler$1.doHandle(JettyServer.kt:52) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:181) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:137) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [ServerTap-0.3.1.jar:?] {}
    at java.lang.Thread.run(Thread.java:833) [?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
Caused by: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at io.izzel.arclight.common.mod.util.remapper.ClassLoaderRemapper.tryDefineClass(ClassLoaderRemapper.java:183) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {re:mixin,re:classloading}
    at io.izzel.arclight.common.mod.util.remapper.generated.ArclightReflectionHandler_11.redirectGetDeclaredFields(ArclightReflectionHandler.java:78) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {}
    at io.javalin.core.util.ReflectionUtilKt.getJavaFieldName(ReflectionUtil.kt:12) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.isJavaField(ReflectionUtil.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.getLambdaField(ReflectionUtil.kt:65) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.Reflection.getLambdaField(ReflectionUtil.kt:118) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.getOpenApiAnnotationFromReference(extractDocumentation.kt:83) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.extractDocumentation(extractDocumentation.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiBuilderDslKt.applyMetaInfoList(openApiBuilderDsl.kt:42) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:54) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiUpdaterDslKt.updateComponents(openApiUpdaterDsl.kt:19) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.runWithModelConverter(JavalinOpenApi.kt:72) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.access$runWithModelConverter(JavalinOpenApi.kt:1) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi.createSchema(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.createOpenAPISchema(OpenApiHandler.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.initializeSchemaSynchronized(OpenApiHandler.kt:121) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.handle(OpenApiHandler.kt:129) ~[ServerTap-0.3.1.jar:?] {}
    at io.servertap.PluginEntrypoint.lambda$onEnable$1(PluginEntrypoint.java:153) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.addHandler$lambda-0(JavalinServlet.kt:96) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:99) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    ... 44 more
[13Sep2022 18:59:59.975] [JettyServerThreadPool-154/ERROR] [io.javalin.Javalin/]: Exception occurred while servicing http-request
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1194) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:89) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JettyServer$start$wsAndHttpHandler$1.doHandle(JettyServer.kt:52) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:181) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [ServerTap-0.3.1.jar:?] {}
    at java.lang.Thread.run(Thread.java:833) [?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
Caused by: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at io.izzel.arclight.common.mod.util.remapper.ClassLoaderRemapper.tryDefineClass(ClassLoaderRemapper.java:183) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {re:mixin,re:classloading}
    at io.izzel.arclight.common.mod.util.remapper.generated.ArclightReflectionHandler_11.redirectGetDeclaredFields(ArclightReflectionHandler.java:78) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {}
    at io.javalin.core.util.ReflectionUtilKt.getJavaFieldName(ReflectionUtil.kt:12) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.isJavaField(ReflectionUtil.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.getLambdaField(ReflectionUtil.kt:65) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.Reflection.getLambdaField(ReflectionUtil.kt:118) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.getOpenApiAnnotationFromReference(extractDocumentation.kt:83) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.extractDocumentation(extractDocumentation.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiBuilderDslKt.applyMetaInfoList(openApiBuilderDsl.kt:42) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:54) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiUpdaterDslKt.updateComponents(openApiUpdaterDsl.kt:19) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.runWithModelConverter(JavalinOpenApi.kt:72) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.access$runWithModelConverter(JavalinOpenApi.kt:1) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi.createSchema(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.createOpenAPISchema(OpenApiHandler.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.initializeSchemaSynchronized(OpenApiHandler.kt:121) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.handle(OpenApiHandler.kt:129) ~[ServerTap-0.3.1.jar:?] {}
    at io.servertap.PluginEntrypoint.lambda$onEnable$1(PluginEntrypoint.java:153) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.addHandler$lambda-0(JavalinServlet.kt:96) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:99) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    ... 45 more
[13Sep2022 18:59:59.978] [JettyServerThreadPool-403/ERROR] [io.javalin.Javalin/]: Exception occurred while servicing http-request
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1194) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2309) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:89) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JavalinJettyServlet.service(JavalinJettyServlet.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.jetty.JettyServer$start$wsAndHttpHandler$1.doHandle(JettyServer.kt:52) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:181) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [ServerTap-0.3.1.jar:?] {}
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [ServerTap-0.3.1.jar:?] {}
    at java.lang.Thread.run(Thread.java:833) [?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
Caused by: java.lang.NoClassDefFoundError: net/milkbowl/vault/economy/Economy
    at io.izzel.arclight.common.mod.util.remapper.ClassLoaderRemapper.tryDefineClass(ClassLoaderRemapper.java:183) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {re:mixin,re:classloading}
    at io.izzel.arclight.common.mod.util.remapper.generated.ArclightReflectionHandler_11.redirectGetDeclaredFields(ArclightReflectionHandler.java:78) ~[arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe.jar%2369!/:arclight-1.18.2-1.0.7-SNAPSHOT-7d2418fe] {}
    at io.javalin.core.util.ReflectionUtilKt.getJavaFieldName(ReflectionUtil.kt:12) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.isJavaField(ReflectionUtil.kt:58) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.ReflectionUtilKt.getLambdaField(ReflectionUtil.kt:65) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.core.util.Reflection.getLambdaField(ReflectionUtil.kt:118) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.getOpenApiAnnotationFromReference(extractDocumentation.kt:83) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.ExtractDocumentationKt.extractDocumentation(extractDocumentation.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiBuilderDslKt.applyMetaInfoList(openApiBuilderDsl.kt:42) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:54) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1$1$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.dsl.OpenApiUpdaterDslKt.updateComponents(openApiUpdaterDsl.kt:19) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:53) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi$createSchema$1.invoke(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.runWithModelConverter(JavalinOpenApi.kt:72) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApiKt.access$runWithModelConverter(JavalinOpenApi.kt:1) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.JavalinOpenApi.createSchema(JavalinOpenApi.kt:49) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.createOpenAPISchema(OpenApiHandler.kt:41) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.initializeSchemaSynchronized(OpenApiHandler.kt:121) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.plugin.openapi.OpenApiHandler.handle(OpenApiHandler.kt:129) ~[ServerTap-0.3.1.jar:?] {}
    at io.servertap.PluginEntrypoint.lambda$onEnable$1(PluginEntrypoint.java:153) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet.addHandler$lambda-0(JavalinServlet.kt:96) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:99) ~[ServerTap-0.3.1.jar:?] {}
    at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85) ~[ServerTap-0.3.1.jar:?] {}
    at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
    ... 45 more
phybros commented 1 year ago

It is a soft dependency. Let me look into this right now

phybros commented 1 year ago

Ahh it's a weird interaction between the OpenAPI annotations and Vault. Still digging

phybros commented 1 year ago

OK this is because I changed the scope of the Vault maven dependency to provided as per its documentation. This was required to make all the RegisteredServiceProvider parts work properly (see https://github.com/phybros/servertap/blob/main/src/main/java/io/servertap/PluginEntrypoint.java#L266).

But changing it to provided means that any time the Economy class is accessed, it throws a NoClassDef exception if you don't "provide" the Jar. In this case the OpenAPI stuff is trying to look at the Economy API routes to find out what types are used (I think).

I think there's a solution to this, but it might take some work. Still looking

phybros commented 1 year ago

Ah yeah. It's due to the the OpenAPI code doing reflection on PluginEntryPoint which declares a private static field of type Economy. I'll have to rewrite this a little bit to create a sort of wrapper around the eco stuff. Thank you for the bug report @Shuro

phybros commented 1 year ago

Looks like 3edc3f95f1a70d4ed15ef70c2b64db92088ba371 fixed the issue. Introduced a new wrapper around the economy instance and made it a singleton. Now only economy related functionality causes the Economy class to be invoked/referenced.

I tested it with and without Vault and an eco plugin and swagger loads/works fine. In addition the economy routes also work fine. Seems good to me. I'll release this as a new version shortly.

phybros commented 1 year ago

Fixed in v0.4.0 https://github.com/phybros/servertap/releases/tag/v0.4.0