quarkus: RestEasy reactive with smallrye metrics throws NoSuchMethodException
Describe the bug
Running quarkus app in native mode with rest easy reactive and smallrye metrics. Endpoint when invoked fails with following error
2021-09-17 09:38:08,156 ERROR [io.aut.eng.ser.exc.UnknownExceptionMapper] (executor-thread-0) Unexpected error processing request: java.lang.RuntimeException: java.lang.NoSuchMethodException: org.acme.ScriptsResource.create_scripts(javax.ws.rs.core.HttpHeaders, java.lang.String, java.lang.String, java.util.List, org.acme.ScriptsModelInput)
at org.jboss.resteasy.reactive.server.spi.ResteasyReactiveResourceInfo.getMethod(ResteasyReactiveResourceInfo.java:70)
at org.jboss.resteasy.reactive.server.spi.ResteasyReactiveResourceInfo.getResourceMethod(ResteasyReactiveResourceInfo.java:101)
at org.jboss.resteasy.reactive.server.injection.ContextProducers_ProducerMethod_resourceInfo_be7f5503a87442251cde9fbc1d406fb350a529f0_ClientProxy.getResourceMethod(ContextProducers_ProducerMethod_resourceInfo_be7f5503a87442251cde9fbc1d406fb350a529f0_ClientProxy.zig:89)
at io.smallrye.metrics.jaxrs.JaxRsMetricsFilter.filter(JaxRsMetricsFilter.java:57)
at org.jboss.resteasy.reactive.server.handlers.ResourceRequestFilterHandler.handle(ResourceRequestFilterHandler.java:40)
at org.jboss.resteasy.reactive.server.handlers.ResourceRequestFilterHandler.handle(ResourceRequestFilterHandler.java:8)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:141)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$13.runWith(VertxCoreRecorder.java:543)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:829)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:567)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
Caused by: java.lang.NoSuchMethodException: org.acme.ScriptsResource.create_scripts(javax.ws.rs.core.HttpHeaders, java.lang.String, java.lang.String, java.util.List, org.acme.ScriptsModelInput)
at java.lang.Class.getMethod(DynamicHub.java:1120)
at org.jboss.resteasy.reactive.server.spi.ResteasyReactiveResourceInfo.getMethod(ResteasyReactiveResourceInfo.java:65)
... 15 more
Expected behavior
No errors are thrown and metrics for JAX-RS are collected
Actual behavior
Error is thrown and service returns 500
How to Reproduce?
No response
Output of uname -a or ver
Darwin MacBook-Pro.local 20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64 x86_64
Output of java -version
openjdk version “11.0.11” 2021-04-20
GraalVM version (if different from Java)
GraalVM 21.2.0 Java 11 CE (Java Version 11.0.12+6-jvmci-21.2-b08)
Quarkus version or git rev
2.2.1
Build tool (ie. output of mvnw --version or gradlew --version)
maven 3.6.3
Additional information
https://groups.google.com/d/msgid/quarkus-dev/A1E3BF4D-ED44-499A-80C3-816577C3464C%40gmail.com
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 23 (22 by maintainers)
This is why I’m curious to see if Micrometer hits the issue, too. The smallrye metrics extension uses more reflection than micrometer does… but this may be a case where resources need to be handled differently…
nope. baked in. It is enabled if any MP Metrics API usage is detected at build time.