我们有一个使用Spring Boot 2.4.3开发的Sping Boot Web应用程序,并部署了Spring Actuator。我正在研究升级到Spring Boot 2.6.2,大部分问题都解决了。我从项目和war文件中删除了Spring Actuator starter,它部署和运行良好。我们正在使用Java 11和Wildfly 18运行。
如果我将spring actuator starter重新添加到项目pom文件和war文件pom文件中,则在部署过程中会显示以下警告:
16:44:28,063 WARN [org.jboss.modules.define] (Thread-115) Failed to define class io.micrometer.core.instrument.binder.jersey.server.MetricsApplicationEventListener in Module "deployment.test.war" from Service Module Loader: java.lang.NoClassDefFoundError: Failed to link io/micrometer/core/instrument/binder/jersey/server/MetricsApplicationEventListener (Module "deployment.test.war" from Service Module Loader): org/glassfish/jersey/server/monitoring/ApplicationEventListener
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1095)
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:424)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:555)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:339)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:126)
at org.jboss.modules.Module.loadModuleClass(Module.java:731)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:247)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition.resolve(FilteringSpringBootCondition.java:108)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter.isPresent(FilteringSpringBootCondition.java:140)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter$2.matches(FilteringSpringBootCondition.java:128)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcome(OnClassCondition.java:227)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcome(OnClassCondition.java:214)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcomes(OnClassCondition.java:201)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.resolveOutcomes(OnClassCondition.java:190)
at deployment.test.war//org.springframework.boot.autoconfigure.condition.OnClassCondition$ThreadedOutcomesResolver.lambda$new$0(OnClassCondition.java:150)
at java.base/java.lang.Thread.run(Thread.java:834)
我继续尝试为缺失的类添加jar文件到项目中,但是问题又添加到了另一个缺失的类文件中。我找不到Spring Actuator在Spring Boot 2.4.2和2.6.2版本之间的任何主要变化会导致这个问题。
有人对可能导致部署问题的 Boot 更改有什么见解吗?
1条答案
按热度按时间q3qa4bjr1#
问题在于不可能在部署时找到“org/glassfish/jersey/server/monitoring/ApplicationEventListener”的依赖关系。
一个可能的解决办法是在战争中包括