**JDK:17 springboot:3.0.5 springcloud: 2022.0.2 springcloud-alibaba:2022.0.0.0-RC1
seata-all:1.6.1**
问题描述:启动微服务客户端报错(集成了)
java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module
在getBean初始化调用applyBeanPostProcessorsAfterInitialization时 如果当前类为代理类(已被AnnotationAwareAspectJAutoProxyCreator#applyBeanPostProcessorsAfterInitialization增强过) 调用GlobalTransactionScanner#applyBeanPostProcessorsAfterInitialization再次代理时 通过SpringProxyUtils.findInterfaces获取接口信息(内部getAdvisedSupport会反射protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h) 调用h.setAccessible(true); 即出现jdk模块化后无法直接反射内部模块错误
期望解惑目前我手动注入了GlobalTransactionScanner并设置了Order为最高优先级,让GlobalTransactionScanner在AnnotationAwareAspectJAutoProxyCreator执行后就不不会出现该问题;
- 希望能告知此问题产生的原因;如果不是bug:我该怎么解决这个问题
- 我这个解决方案有效吗,会影响事务内部代理的机制不
谢谢各位~