gpt4 book ai didi

java - Springboot -> Springboot 2 : 2 Spring WebApplicationInitializers detected on classpath

转载 作者:行者123 更新时间:2023-11-30 01:46:23 29 4
gpt4 key购买 nike

我最近有一个 Web 应用程序从 springboot 升级到 springboot 2。当我将其部署到 Tomcat 8 时,它似乎启动了,但没有完全启动。

在 localhost.2019-09-04.log (Tomcat) 中,出现以下错误:

2 Spring WebApplicationInitializers detected on classpath

我尝试了这篇文章中的各种方法:

2 Spring WebApplicationInitializers detected on classpath

但没有运气。如何找出另一个 WebApplicationInitializers 可能位于哪个包中?

最佳答案

该日志是从 SpringServletContainerInitializer 输出的,它是处理 WebApplicationInitializer 的 Servlet 3.0 ServletContainerInitializer

因此,了解这些 WebApplicationInitializer 是什么的最简单方法是创建我们自己的 ServletContainerInitializer,它也处理 WebApplicationInitializer 并打印它们的信息控制台。

@HandlesTypes(WebApplicationInitializer.class)
public class FooServletContainerInitializer implements ServletContainerInitializer {

@Override
public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
for (Class<?> clazz : c) {
System.out.println(clazz);
System.out.println(clazz.getResource('/' + clazz.getName().replace('.', '/') + ".class"));
System.out.println("----------------");
}

}
}

我指的是this了解如何打印类的 JAR 文件路径。

要注册它,请创建一个文件 META-INF/services/javax.servlet.ServletContainerInitializer。在此文件中,包含 ServletContainerInitializer 的完全限定类名:

org.foo.bar.FooServletContainerInitializer

然后它应该在 Tomcat 启动期间执行。

关于java - Springboot -> Springboot 2 : 2 Spring WebApplicationInitializers detected on classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57791571/

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