1. ホーム
  2. Java

ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。

2022-02-14 08:19:43
<パス

プロンプトが複数回出て、spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE と spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE のバージョンが競合していると思われるようですが、何度もバージョンを変えてみて違うことが判明しています。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-04-24 12:41:12.026 ERROR 9464 --- [ main] o.s.boot.SpringApplication : Application run failed

BeansDefinitionStoreException: Failed to parse configuration class [ProductApplication]; nested exception is java.lang.IllegalArgumentException: Could not find class [org.springframework.hateoas.client.LinkDiscoverers]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:189) ~[spring-context-5.2.14. RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions( ConfigurationClassPostProcessor.java:320) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry( ConfigurationClassPostProcessor.java:237) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors( PostProcessorRegistrationDelegate.java:280) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors( PostProcessorRegistrationDelegate.java:96) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java: 707) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) ~[spring-context-5.2. 14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java: 143) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10. RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1247) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1236) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
	at ProductApplication.main(ProductApplication.java:11) ~[classes/:na]
Caused by: java.lang.IllegalArgumentException: Could not find class [org.springframework.hateoas.client.LinkDiscoverers]
	at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:334) ~[spring-core-5.2.14.RELEASE.jar:5.2.14.]
	at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:446) ~[spring-core-5.2.14.RELEASE.jar: 5.2.14.RELEASE]
	at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:369) ~[spring-core-5.2.14.RELEASE.jar :5.2.14.RELEASE]
	at org.springframework.core.annotation.TypeMappedAnnotation.asMap(TypeMappedAnnotation.java:284) ~[spring-core-5.2.14.RELEASE.jar: 5.2.14.RELEASE]
	at org.springframework.core.annotation.AbstractMergedAnnotation.asAnnotationAttributes(AbstractMergedAnnotation.java:193) ~[spring- core-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.core.type.AnnotatedTypeMetadata.getAnnotationAttributes(AnnotatedTypeMetadata.java:106) ~[spring-core-5.2.14. RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.AnnotationConfigUtils.attributesFor(AnnotationConfigUtils.java:285) ~[spring-context-5.2. 14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.AnnotationBeanNameGenerator.determineBeanNameFromAnnotation(AnnotationBeanNameGenerator. java:102) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.AnnotationBeanNameGenerator.generateBeanName(AnnotationBeanNameGenerator.java:81) ~[spring -context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:280) ~[spring- context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) ~[spring- context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296) ~[ spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250) ~[ spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207) ~[spring-context-5.2.14. RELEASE.jar:5.2.14.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175) ~[spring-context-5.2.14. RELEASE.jar:5.2.14.RELEASE]
	... 14 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.hateoas.client.LinkDiscoverers
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
	at java.base/java.lang.Class.forName(Class.java:398) ~[na:na]
	at org.

自分で書いたProductApplicationの下に赤線のエラーが見えるのは、ProductApplicationクラスをjavaディレクトリに書いたからです

理由の説明

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-04-24 12:41:12.026 ERROR 9464 --- [ main] o.s.boot.SpringApplication : Application run failed


コードブロックの前に警告が表示されます

** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.


ComponentScanningアノテーションを使っていないのに、なぜここに表示されるのでしょうか?
SpringBootがオブジェクトスキャンの範囲を指定するために@ComponentScanを使わずにスタータークラス(Mainメソッドがあるクラス)を書くと、デフォルトは現在のスタータークラスがあるパッケージ内のオブジェクトをスキャンすることを意味します。
(注:Mainメソッドに@ComponentScanアノテーションを記述しなかったので、Applicationがあるパッケージ内のオブジェクトをスキャンしています)
現在の起動クラスがパッケージを持っていない場合、起動時にエラーが報告されます。デフォルトパッケージの @ComponentScan エラーのため、ApplicationContext は起動しそうにありません。
(注意:javaフォルダに書かれているApplicationクラスはどのパッケージにも従属しないため、起動クラスはパッケージを持ちません)

ソリューション

方法1:別のパッケージの下にアプリケーションをビルドする
方法2:Applicationクラスに@ComponentScanアノテーションを追加し、スキャンするパッケージを指定します。

問題は解決されました