我们最近将我们的应用程序从 servlet 2.5 转换为 servlet 3.0,以便我们可以使用动态 servlet 配置。
我们使用 Spring 的 SpringServletContainerInitializer 来初始化我们的应用程序,并使用我们代码中的相应 WebApplicationInitializer 实例来初始化我们的应用程序。这种方法在 Tomcat 中有效,但是在部署到 Websphere 8.5.0.1 时,SpringServletContainerInitializer 无法在我们的代码中找到 WebApplicationInitializer 接口的实现,因此没有创建我们的 Spring MVC 调度程序 servlet。
我们在网上发现了一篇博文,作者无法让它发挥作用。
我们尝试过弄乱类加载器、类加载顺序,并通过其他方式验证 servlet 3.0 在容器中是否正常工作,并且似乎没问题。使用 WAS 类加载器查看器,我们可以看到 SpringServletContainerInitializer 类和 WebApplicationInitializer 接口已加载,但未加载我们的 WebApplicationInitializer 实现。
有没有人在 Websphere 中尝试过这个?我们认为这可能是类加载器问题,但最终毫无头绪。