Quarkus Java MQ客户端原生镜像构建JmxMBeanServer报错咨询
问题解决方案
优先排查类初始化触发源,无需第一时间升级GraalVM
- 第一步:在原生镜像构建命令中添加
--trace-class-initialization=com.sun.jmx.mbeanserver.JmxMBeanServer参数重新执行构建,该参数会输出完整的栈追踪日志,明确是哪个依赖类在镜像构建阶段触发了JmxMBeanServer的初始化。 - 第二步:定位到触发类之后,将该类也追加到
--initialize-at-run-time参数的列表中,多个类用英文逗号分隔即可,示例如下:--initialize-at-run-time=com.sun.jmx.mbeanserver.JmxMBeanServer,【排查到的触发类全限定名】 - 针对你使用IBM MQ客户端的场景,大概率是MQ客户端自带的JMX监控相关类在静态初始化阶段调用了JMX相关接口,排查到对应类后配置为运行时初始化即可解决问题。
版本升级仅为备选方案
你当前使用的Quarkus 2.1.1.Final官方兼容的GraalVM版本为21.1.x系列,你当前使用的GraalVM CE Java11 21.1.0属于兼容版本,不需要优先升级。只有完成上述初始化配置排查后仍存在报错时,再考虑升级到同大版本下的最新小版本即可,不要跨大版本升级避免出现Quarkus兼容问题。
内容的提问来源于stack exchange,提问作者Chandan Mishra
相关产品推荐
相关产品推荐

