wildfly 10 - javax.servlet.ServletContainerInitializer:Provider org.springframework.web.SpringServletContainerInitializer不是子类型

时间:2016-10-28 18:56:36

标签: java spring servlets wildfly

我正在使用Spring 4.3和Servlet 3.1。 部署失败并出现错误  javax.servlet.ServletContainerInitializer:Provider org.springframework.web.SpringServletContainerInitializer不是子类型。 我知道这是一个错误的类正在加载

Spring jar和Servlet 3.1 jar被配置为模块,并在module.xml中提及。

javax.servlet.ServletContainerInitializer只出现在我已经包含在module.xml中的一个jar jboss-servlet-api_3.1_spec-1.0.0.Final.jar中。

我的应用程序需要SpringServletContainerInitializer。 如果您需要我发布更多详细信息,请与我们联系。 任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并通过goig通过我的依赖项来解决它,看看是否有任何事情与我的应用程序服务器库崩溃。

确保您的maven / gradle配置中的java-eejava-ee-web依赖关系设置为“已提供”范围。

答案 1 :(得分:0)

我得到了同样的错误,经过研究,我发现由于Maven包装问题,SpringServletContainerInitializer未加载spring-web-4.3.8.Release.jar。就我而言,RegExp没有与应用程序WAR正确捆绑。

这可以通过

修复
  1. 解决应用程序捆绑冲突
  2. 使用服务器共享库
  3. 如果使用IDE进行应用程序捆绑,可以避免使用IDE捆绑或切换IDE(如STS到Eclipse / RAD)

答案 2 :(得分:0)

Spring Boot的tomcat-embed-core- .jar是servlet-api和其他类似Java EE API额外副本的另一个潜在来源,您可以从spring-boot-starter-web获得。