Websphere 8.5.5 - spring boot error: SpringServletContainerInitializer not a subtype
Websphere 8.5.5 - spring boot error: SpringServletContainerInitializer not a subtype
我有一个 spring 启动应用程序,它在 Tomcat 8 上运行良好。当我尝试将它部署到 "Class loader order" 设置为 "Classes loaded with local class loader first (parent last)" 的 Websphere 8.5.5 时应用程序无法启动,出现以下异常:
... 73 more
Caused by: java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.springframework.web.SpringServletContainerInitializer not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:242)
at java.util.ServiceLoader.access0(ServiceLoader.java:192)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:380)
at java.util.ServiceLoader.next(ServiceLoader.java:456)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:537)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:410)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:171)
... 74 more
只是添加了我对这个问题的经验,环顾了类似问题的各种答案,我发现问题可能是由一些 javax-servlet 相关的 jar 引起的类路径。经过反复试验,我注意到 spring-boot-starter-web 依赖项继承了 spring-boot-starter-tomcat依赖。在 Websphere 8.5.5 上部署时从应用程序类路径中排除这个 jar 解决了这个问题。
我有一个 spring 启动应用程序,它在 Tomcat 8 上运行良好。当我尝试将它部署到 "Class loader order" 设置为 "Classes loaded with local class loader first (parent last)" 的 Websphere 8.5.5 时应用程序无法启动,出现以下异常:
... 73 more
Caused by: java.util.ServiceConfigurationError: javax.servlet.ServletContainerInitializer: Provider org.springframework.web.SpringServletContainerInitializer not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:242)
at java.util.ServiceLoader.access0(ServiceLoader.java:192)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:380)
at java.util.ServiceLoader.next(ServiceLoader.java:456)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:537)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:410)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:171)
... 74 more
只是添加了我对这个问题的经验,环顾了类似问题的各种答案,我发现问题可能是由一些 javax-servlet 相关的 jar 引起的类路径。经过反复试验,我注意到 spring-boot-starter-web 依赖项继承了 spring-boot-starter-tomcat依赖。在 Websphere 8.5.5 上部署时从应用程序类路径中排除这个 jar 解决了这个问题。