我正在尝试在weblogic 12c(支持Java 6,7,8)中部署我的旧应用程序,但是每次显示java.lang.IncompatibleClassChangeError:实现类时,我都无法理解什么是确切的问题,如何解决这个问题,有人可以帮助我吗?在weblogic 10(支持Java 4,6,7)中,已成功部署
<Dec 6, 2019 12:10:10,555 PM GMT> <Error> <HTTP> <WL-101216> <Servlet: "JerseyRESTService" failed to preload on startup in Web application: "CDMWeb.war".
A MultiException has 1 exceptions. They are:
1. java.lang.IncompatibleClassChangeError: Implementing class
at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1085)
at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:978)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1082)
at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1074)
at org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
Truncated. see log file for complete stacktrace
Caused By: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.lang.ClassLoader.defineClass(ClassLoader.java:839)
at com.oracle.classloader.PolicyClassLoader.innerDefineClass(PolicyClassLoader.java:686)
at com.oracle.classloader.PolicyClassLoader.defineClass(PolicyClassLoader.java:669)
Truncated. see log file for complete stacktrace
>
CDMGenericJobListener:contextDestroyed Event
<Dec 6, 2019 12:10:10,708 PM GMT> <Error> <Deployer> <WL-149265> <Failure occurred in the execution of deployment request with ID "43494609412439500" for task "3" on [partition-name: DOMAIN]. Error is: "weblogic.application.ModuleException: java.lang.IncompatibleClassChangeError: Implementing class"
weblogic.application.ModuleException: java.lang.IncompatibleClassChangeError: Implementing class
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
Caused By: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.lang.ClassLoader.defineClass(ClassLoader.java:839)
at com.oracle.classloader.PolicyClassLoader.innerDefineClass(PolicyClassLoader.java:686)
at com.oracle.classloader.PolicyClassLoader.defineClass(PolicyClassLoader.java:669)
Truncated. see log file for complete stacktrace
>
如果仍然遇到问题,请尝试使用Jersey框架的更新版本。在这种情况下,请注意,您必须修改web.xml文件以起诉正确的servlet类:
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>