Closed k33g closed 6 years ago
Damn Swagger. I need to find how to make it use the classes I scanned myself.
So what happens is that I correctly tell Swagger which package to scan. It then takes that useful info, and tells Reflections
to scan the jar containing that package, thereby turning that useful info into useless slime because the current jar is a fat-jar, so it scans everything, and well, apparently (at least) netty-ssl has dependencies that Maven doesn't know about, probably optional deps.
I need to see if there's a workaround.
OK, found one, pushed a fix. Can you verify with the latest master or do you need a snapshot published?
@FroMage now I re build and start the jar without error message but I try to access to a route of the webapp, I'll get an exception:
Apr 26, 2018 9:53:32 PM net.redpipe.engine.dispatcher.VertxPluginRequestHandler lambda$handle$0
ERROR: RESTEASY019525: Unexpected
org.jboss.resteasy.spi.UnhandledException: org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: java.lang.String of media type: text/html;charset=UTF-8
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:202)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:533)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:455)
at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:226)
at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:133)
at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:359)
at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:136)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:212)
at org.jboss.resteasy.plugins.server.vertx.RequestDispatcher.service(RequestDispatcher.java:93)
at net.redpipe.engine.dispatcher.PluginRequestDispatcher.service(PluginRequestDispatcher.java:39)
at net.redpipe.engine.dispatcher.PluginRequestDispatcher.service(PluginRequestDispatcher.java:31)
at net.redpipe.engine.dispatcher.VertxPluginRequestHandler.lambda$handle$0(VertxPluginRequestHandler.java:74)
at io.vertx.rxjava.core.http.HttpServerRequest$2.handle(HttpServerRequest.java:292)
at io.vertx.rxjava.core.http.HttpServerRequest$2.handle(HttpServerRequest.java:290)
at io.vertx.core.http.HttpServerRequest.lambda$bodyHandler$0(HttpServerRequest.java:209)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:417)
at io.vertx.core.http.impl.Http1xServerConnection.handleLastHttpContent(Http1xServerConnection.java:462)
at io.vertx.core.http.impl.Http1xServerConnection.processMessage(Http1xServerConnection.java:435)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:141)
at io.vertx.core.http.impl.HttpServerImpl$ServerHandlerWithWebSockets.handleMessage(HttpServerImpl.java:728)
at io.vertx.core.http.impl.HttpServerImpl$ServerHandlerWithWebSockets.handleMessage(HttpServerImpl.java:636)
at io.vertx.core.net.impl.VertxHandler.lambda$channelRead$1(VertxHandler.java:146)
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:337)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:195)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:144)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:60)
at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:141)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: java.lang.String of media type: text/html;charset=UTF-8
at org.jboss.resteasy.core.ServerResponseWriter.lambda$writeNomapResponse$2(ServerResponseWriter.java:105)
at org.jboss.resteasy.core.interception.jaxrs.ContainerResponseContextImpl.filter(ContainerResponseContextImpl.java:394)
at org.jboss.resteasy.core.ServerResponseWriter.executeFilters(ServerResponseWriter.java:205)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:83)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:57)
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:198)
... 49 more
I think I know. It's a META-INF
merge issue. See https://github.com/FroMage/redpipe-openshift-helloworld/blob/master/pom.xml#L55 for how to make sure the info is merged, otherwise Maven will overwrite every META-INF
service info with the next one.
Hi
I try to build a standalone jar with this Maven plugin
But when I run
java -jar target/demo-1.0-SNAPSHOT-jar-with-dependencies.jar
I get a very verboseReflectionsException
(output is here: https://gist.github.com/k33g/50adb770d96a128d963c0ce660638cd8)But the server is running.
If I "call" http://localhost:9000/, it generates new exceptions: