Quarkus Native模式下RuntimeDelegateImpl类未找到问题求助
Quarkus Native模式下偶发ClassNotFoundException问题排查
环境与依赖配置
- 使用Quarkus 2.6.0 Native模式运行
- 基于Quarkus CXF进行服务调用,返回JSON格式结果,引入了resteasy和resteasy-jackson依赖,其中CXF依赖配置如下:
<dependency> <groupId>io.quarkiverse.cxf</groupId> <artifactId>quarkus-cxf</artifactId> <version>0.11.0</version> </dependency>
问题现象
- 服务日均处理约150万次请求,偶尔会出现5-10次请求抛出
ClassNotFoundException,本地环境无法复现该问题 - 异常栈信息如下:
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:129) at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:96) at org.jboss.resteasy.spi.ResteasyProviderFactory.getInstance(ResteasyProviderFactory.java:117) at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:82) at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:151) at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:91) 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:600) at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192) Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl at java.lang.Class.forName(DynamicHub.java:1347) at java.lang.Class.forName(DynamicHub.java:1322) at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:93) at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:210) at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:111)
当前情况
- 考虑通过反射配置文件注册
org.glassfish.jersey.internal.RuntimeDelegateImpl类,但不确定是否能解决问题 - 服务启用了Horizontal Pod Autoscaling,Pod数量随业务波动
- 相关证据截图说明:
- 截图1:展示异常每日出现频次统计,偶发次数占比极低
- 截图2:展示具体异常栈详情,与上述内容一致
请求解决思路
内容的提问来源于stack exchange,提问作者Luisao
相关产品推荐
相关产品推荐

