#977·Sa-Token

satoken-grpc1.46.0 启动报 cn.dev33.satoken.context.grpc.SaTokenSecondContextCreatorForGrpc类文件找不到

Author: UFO233Created Sep 11, 2026Updated Sep 15, 2026

使用版本:

spring boot4.1.1,spring cloud 2025.1.2,satoken-grpc1.46.0

报错信息:

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2026-09-11 16:28:32 ERROR [main] [-] o.s.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Unable to read meta-data for class cn.dev33.satoken.context.grpc.SaTokenSecondContextCreatorForGrpc at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:289) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getOrder(AutoConfigurationSorter.java:249) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at org.springframework.boot.autoconfigure.AutoConfigurationSorter.lambda$getInPriorityOrder$0(AutoConfigurationSorter.java:76) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) ~[na:na] at java.base/java.util.TimSort.sort(TimSort.java:234) ~[na:na] at java.base/java.util.Arrays.sort(Arrays.java:1304) ~[na:na] at java.base/java.util.ArrayList.sortRange(ArrayList.java:1817) ~[na:na] at java.base/java.util.ArrayList.sort(ArrayList.java:1810) ~[na:na] at org.springframework.boot.autoconfigure.AutoConfigurationSorter.getInPriorityOrder(AutoConfigurationSorter.java:74) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.sortAutoConfigurations(AutoConfigurationImportSelector.java:526) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.selectImports(AutoConfigurationImportSelector.java:502) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:936) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:862) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:833) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:200) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:452) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:316) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:795) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:603) ~[spring-context-7.0.9.jar:7.0.9] at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-web-server-4.1.1.jar:4.1.1] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) ~[spring-boot-4.1.1.jar:4.1.1] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) ~[spring-boot-4.1.1.jar:4.1.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) ~[spring-boot-4.1.1.jar:4.1.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) ~[spring-boot-4.1.1.jar:4.1.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-4.1.1.jar:4.1.1] at com.vmall.system.api.SystemApplication.main(SystemApplication.java:18) ~[classes/:na] Caused by: java.io.FileNotFoundException: class path resource [cn/dev33/satoken/context/grpc/SaTokenSecondContextCreatorForGrpc.class] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:212) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.ClassFileMetadataReader.parseClassModel(ClassFileMetadataReader.java:49) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.ClassFileMetadataReader.(ClassFileMetadataReader.java:45) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.ClassFileMetadataReaderFactory.getMetadataReader(ClassFileMetadataReaderFactory.java:62) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:127) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.AbstractMetadataReaderFactory.getMetadataReader(AbstractMetadataReaderFactory.java:62) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:40) ~[spring-core-7.0.9.jar:7.0.9] at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:284) ~[spring-boot-autoconfigure-4.1.1.jar:4.1.1] ... 27 common frames omitted

希望结果:

复现步骤:

< 备注:如果复现步骤比较复杂,请将 demo 上传到 gitee 并留下地址 >