gpt4 book ai didi

java - Spring Boot Cache + Apache ignite + Spring Boot Actuator - 运行测试时应用程序无法启动

转载 作者:行者123 更新时间:2023-11-30 05:41:56 25 4
gpt4 key购买 nike

我有一个项目,其中使用 Spring Boot 2.0.0+、Spring Boot Cache、Apache Ignite、Spring Boot Actuator 和 TestNG。

自从我从 ignite 2.5 升级到 ignite 2.6+ 以来,我在尝试运行应用程序测试时一直遇到问题,因为每次应用程序在测试任务上启动时,ignite 都无法在 CacheMetricsRegistrarConfiguration

应用程序因以下异常而失败:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.metrics.cache.CacheMetricsRegistrarConfiguration': Invocation of init method failed; nested exception is java.lang.AssertionError

我创建了一个展示此问题的应用程序,您可以通过以下链接访问它:

https://github.com/pmrochaubi/apache-ignite-spring-boot-actuator

有人可以向我解释发生了什么事以及如何解决这个问题吗?目前我停留在 2.5 版本...

干杯

最佳答案

很难说到底是谁应该受到责备,但正如您所看到的:

Caused by: java.lang.AssertionError: null
at org.apache.ignite.cache.spring.SpringCacheManager.getCacheNames(SpringCacheManager.java:371) ~[ignite-spring-2.7.0.jar:2.7.0]
at org.springframework.boot.actuate.autoconfigure.metrics.cache.CacheMetricsRegistrarConfiguration.bindCacheManagerToRegistry(CacheMetricsRegistrarConfiguration.java:73) ~[spring-boot-actuator-autoconfigure-2.1.3.RELEASE.jar:2.1.3.RELEASE]
at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_144]
at org.springframework.boot.actuate.autoconfigure.metrics.cache.CacheMetricsRegistrarConfiguration.bindCachesToRegistry(CacheMetricsRegistrarConfiguration.java:69) ~[spring-boot-actuator-autoconfigure-2.1.3.RELEASE.jar:2.1.3.RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:363) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:307) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 73 common frames omitted

SpringCacheManager.getCacheNames() 是从 postProcessBeforeInitialization() 调用的。然而,很明显,您只能在缓存初始化后获取缓存名称,例如,在 Ignite 启动并在 SpringCacheManager 上调用 onApplicationEvent() 后。

对于执行器的 CacheMetricsRegistrarConfiguration 来说,这是一个有趣的问题,为什么他们觉得需要在尚未开始任何操作的情况下在 @PostConstruct 方法中调用此方法。

关于java - Spring Boot Cache + Apache ignite + Spring Boot Actuator - 运行测试时应用程序无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com