【问题标题】:Failure to parse configuration class解析配置类失败
【发布时间】:2023-01-11 14:55:39
【问题描述】:

我正在尝试构建一个之前在不同版本的 IntelliJ 中构建和运行的项目。错误信息如下:

错误 o.s.boot.SpringApplication - 应用程序运行失败 org.springframework.beans.factory.BeanDefinitionStoreException:无法解析配置类 [org.wbs.grader.books.BooksApplication];嵌套异常是 java.lang.IllegalStateException:无法在类 org.wbs.grader.books.BooksApplication 上内省带注释的方法 在 org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184) 在 org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:325) 在 org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:242) 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) 在 org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) 在 org.wbs.grader.books.BooksApplication.main(BooksApplication.java:19) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) 原因:java.lang.IllegalStateException:无法在类 org.wbs.grader.books.BooksApplication 上内省注释方法 在 org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:165) 在 org.springframework.context.annotation.ConfigurationClassParser.retrieveBeanMethodMetadata(ConfigurationClassParser.java:395) 在 org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:320) 在 org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) 在 org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:202) 在 org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:170) 省略了 17 个公共帧 由以下原因引起:java.lang.IllegalStateException:无法从 ClassLoader [org.springframework.boot.devtools.restart.classloader.RestartClassLoader@356d44b2] 内省类 [org.wbs.grader.books.BooksApplication] 在 org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:477) 在 org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:451) 在 org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:154) 省略了 22 个公共帧 引起:java.lang.NoClassDefFoundError:javax/servlet/ServletContext 在 java.base/java.lang.Class.getDeclaredMethods0(本机方法) 在 java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166) 在 java.base/java.lang.Class.privateGetPublicMethods(Class.java:3191) 在 java.base/java.lang.Class.getMethods(Class.java:1904) 在 org.springframework.util.ReflectionUtils.findConcreteMethodsOnInterfaces(ReflectionUtils.java:487) 在 org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:460)

我曾尝试使用不同版本的 JDK 8、11、17,但都给出了相同的错误。

我尝试重建 Spring Boot 初始值设定项,但没有效果。

【问题讨论】:

    标签: java spring-boot spring-annotations annotation-processing


    【解决方案1】:

    我认为您没有使用定义 spring 应用程序主类的子包或同一个包,所以请使用此方法

    您需要将您的代码移动到它自己的包中。例如,将 .java 文件移动到 src/main/java/com/example 并添加 package com.example;到每个文件的顶部。

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 1970-01-01
      • 2016-12-12
      • 2019-11-26
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      相关资源
      最近更新 更多