Closed rapidark closed 5 months ago
support nacos @gaosaroma
Koupleless version: 2.1.0 SOFAArk version: 3.1.0 JVM version: 17
是使用 springboot 3.2.x 么? 在 springboot 3.2.x 下,koupleless.runtime.version 2.1.x, sofaark version 3.1.x, JVM version: 17, 需要使用 0.3.0-RC 及以上版本的 nacos-config-spring-boot-starter 和 nacos-discovery-spring-boot-starter
在 springboot 3.0.x 或 3.1.x 下,koupleless.runtime.version 2.0.x, sofaark version 3.0.x, JVM version: 17, 也需要使用 0.3.0-RC 及以上版本的 nacos-config-spring-boot-starter 和 nacos-discovery-spring-boot-starter
本地实验了下,用以上版本,模块和基座能正常使用 nacos 做配置管理
如果是其他使用方式,请提供下更完整的依赖信息
没有其他问题的话,这个 issue 就先关闭了,有问题欢迎随时 reopen
Describe the question or bug
When biz install, spring class use Jdk AppClassLoader loaded class, when spring refresh, scan base biz classpath classes, the ServicLoader generic class is load from JdkAppClassLoader, but ServiceLoader load impl Class is from BizClassLoader, class cast exception caused.
For example: env: 1: Base biz classpath containe nacos-client.jar 2: Module bizA nacos-client.jar pom dependency scope is compile.
When install Module bizA, spring context refresh, com.alibaba.nacos.client.config.filter.impl.ConfigFilterChainManager created. ` public ConfigFilterChainManager(Properties properties) {
} `
spring class use Jdk AppClassLoader, scaned ConfigFilterChainManager used from Jdk AppClassLoader,
ServiceLoader<IConfigFilter> configFilters
the define code IConfigFilter is used from Jdk AppClassLoader,configFilters = ServiceLoader.load(IConfigFilter.class);
ServiceLoader.load impl class "com.alibaba.nacos.client.config.filter.impl.ConfigEncryptionFilter" isLoad from BizClassLoader, and ConfigEncryptionFilter's interface class "com.alibaba.nacos.api.config.filter.IConfigFilter" is load from BizClassLoader,now, the class "com.alibaba.nacos.client.config.filter.impl.ConfigEncryptionFilter" from BizClassLoader can't be cast to "com.alibaba.nacos.api.config.filter.IConfigFilter" define in the code "ServiceLoader configFilters " which "IConfigFilter" class load from Jdk AppClassLoader.
Expected behavior
Install biz module success.
Actual behavior
Caused by: java.util.ServiceConfigurationError: com.alibaba.nacos.api.config.filter.IConfigFilter: com.alibaba.nacos.client.config.filter.impl.ConfigEncryptionFilter not a subtype
Environment