Jboss 在类路径上没有检测到 Spring WebApplicationInitializer 类型
Posted
技术标签:
【中文标题】Jboss 在类路径上没有检测到 Spring WebApplicationInitializer 类型【英文标题】:Jboss No Spring WebApplicationInitializer types detected on classpath 【发布时间】:2021-08-31 03:16:24 【问题描述】:我正在尝试在 JBoss7.1.1 服务器上部署我的项目。但我收到以下消息,我的项目没有得到部署。
19:13:39,075 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "ips-configuration-dynamic.war"
19:13:42,731 INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/ips-configuration-dynamic]] (MSC service thread 1-8) No Spring WebApplicationInitializer types detected on classpath
19:13:42,781 INFO [org.jboss.web] (MSC service thread 1-8) JBAS018210: Registering web context: /ips-configuration-dynamic
19:13:43,723 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "ips-configuration-dynamic.war"
我正在使用 Spring 3.1.1 发行版 jar。提前致谢。
【问题讨论】:
你有一个实现WebApplicationInitializer
的类吗?否则你需要一个 web.xml。
是的。你说的对。我没有 web.xml。现在它工作正常。谢谢。
【参考方案1】:
在典型的 servlet 应用程序中,您将拥有一个 web.xml
描述符文件来为您的应用程序声明您的 servlet、过滤器、侦听器、上下文参数、安全配置等。从 servlet 3.0 开始,您可以通过编程方式完成大部分工作。
Servlet 3.0 提供了接口ServletContainerInitializer
,您可以实现该接口。您的 servlet 容器将在 META-INF/services/javax.servlet.ServletContainerInitializer
文件中查找该类的实现,将其实例化,然后调用其 onStartup()
方法。
Spring 在该接口之上构建了WebApplicationInitializer
,作为适配器/助手。
您需要web.xml
描述符或实现WebApplicationInitializer
的类来设置和运行您的应用程序。
【讨论】:
我的 webapp 中已经有一个 web.xml 文件..但是我在控制台的类路径中显示 No Spring WebApplicationInitializer types detected..我需要在 web.xml 文件中添加一些东西吗关于 WebApplicationInitializer 接口? @namxal 您需要在与 Servlet 3.0 兼容的 servlet 容器中运行,并让您的 web.xml 将您的应用程序声明为使用 Servlet 3.0。其余的将由 Servlet 容器完成。以上是关于Jboss 在类路径上没有检测到 Spring WebApplicationInitializer 类型的主要内容,如果未能解决你的问题,请参考以下文章
使用 maven 和 spring boot 在类路径上检测到 log4j-over-slf4j.jar 和 slf4j-log4j12.jar
在 JBoss EAP 6.4 中没有检测到 HTTP 安全头
春天云网关;在类路径上发现 Spring MVC,与 Spring Cloud Gateway 不兼容问题
在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,抢占StackOverflowError。