我在websphere8.5.5上部署了一个spring-boot应用程序。使用spring-boot 2.3.x,它可以正常工作,而在更新到2.5.x版本后。简单的堆栈跟踪是:
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpSessionIdListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:610)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:244)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)
at java.lang.ClassLoader.loadClass(ClassLoader.java:887)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:135)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:587)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:619)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
... 120 more
类加载器设置为PARENT_LAST
Spring Boot 2.5需要Servlet 3.1/Java EE 7。
WebSphere传统的8.5只是Servlet 3.0/Java EE 6。
您需要WebSphere传统的9.0来支持Servlet 3.1。/Spring Boot 2.5所需的Java EE 7。
当然,WebSphereLiberty支持必要的规范级别(以及更新/更新的(