从 axis-1.3.jar 升级到 axis-1.4-osgi.jar 后出现以下错误
[9/16/19 6:13:07:783 CDT] 00000033 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet <Servlet_name> in application <application_name>. Exception created : java.lang.NoClassDefFoundError: org.apache.axis.encoding.Serializer
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:73)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:133)
...
...
...
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:576)
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:250)
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1694)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:970)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:508)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:879)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:516)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:307)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:278)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1070)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:644)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1820)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1662)
Caused by: java.lang.ClassNotFoundException: org.apache.axis.encoding.Serializer
at java.net.URLClassLoader.findClass(URLClassLoader.java:457)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:201)
at java.lang.ClassLoader.loadClass(ClassLoader.java:676)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:112)
at java.lang.ClassLoader.loadClass(ClassLoader.java:642)
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:513)
at java.lang.ClassLoader.loadClass(ClassLoader.java:642)
... 32 more
两个 JAR 都包含类 org.apache.axis.encoding.Serializer。那么,这个问题可能是什么原因造成的。
最佳答案
由于 org.apache.axis.encoding.Serializer 确实位于 axis-1.4-osgi.jar 中(您可以在 https://www.findjar.com/jar/mule/dependencies/maven2/org/apache/axis/axis/1.4-osgi/axis-1.4-osgi.jar.html?all=true 处查看),我的猜测是这个类在编译时出现在您的 IDE 中,但在应用程序启动/运行时不在服务器类路径中(通过检查堆栈跟踪,看起来您正在尝试运行 Web 应用程序并且出现异常发生在运行时)。
关于java - 从 axis-1.3.jar 升级到 axis-1.4-osgi.jar 时出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57977069/