REST request with XStream payload for Spring Boot kie-server application fails with exception " java.lang.NoClassDefFoundError"
Issue
REST request with XStream payload for Spring Boot kie-server application fails with the following exception :
2022-03-10 08:00:01.019,[WARN],host01,[http-nio-0.0.0.0-8090-exec-5],Application {http://resource.common.rest.remote.server.kie.org/}KieServerRestImpl has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Lorg/apache/avalon/framework/logger/Logger;
at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:193)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:103)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
...
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/avalon/framework/logger/Logger;
at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2248)
at com.thoughtworks.xstream.mapper.AnnotationMapper.processTypes(AnnotationMapper.java:205)
at com.thoughtworks.xstream.mapper.AnnotationMapper.processAnnotations(AnnotationMapper.java:165)
at com.thoughtworks.xstream.XStream.processAnnotations(XStream.java:2218)
at com.thoughtworks.xstream.XStream.processAnnotations(XStream.java:2229)
at org.kie.server.api.marshalling.xstream.XStreamMarshaller.configureMarshaller(XStreamMarshaller.java:239)
at org.kie.server.api.marshalling.xstream.XStreamMarshaller.<init>(XStreamMarshaller.java:115)
at org.kie.server.api.marshalling.BaseMarshallerBuilder.build(BaseMarshallerBuilder.java:39)
at org.kie.server.api.marshalling.MarshallerFactory.getMarshaller(MarshallerFactory.java:50)
at org.kie.server.services.impl.KieContainerInstanceImpl.getMarshaller(KieContainerInstanceImpl.java:184)
at org.kie.server.services.impl.marshal.MarshallerHelper.unmarshal(MarshallerHelper.java:103)
at org.kie.server.services.impl.marshal.MarshallerHelper.unmarshal(MarshallerHelper.java:88)
at org.kie.server.services.jbpm.ProcessServiceBase.startProcess(ProcessServiceBase.java:110)
at org.kie.server.remote.rest.jbpm.ProcessResource.startProcess(ProcessResource.java:181)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
... 90 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.avalon.framework.logger.Logger
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 112 common frames omitted
The class causing the java.lang.ClassNotFoundException is one of the following three classes, which are changed randomly at each application launch.
- org.apache.avalon.framework.logger.Logger
- org.apache.log.Logger
- org.apache.log4j.Priority
This issue happens on some environment but not on the other environments.
How to solve this?
Environment
- Red Hat Process Automation Manager
- 7.11.1
- Spring Boot(v2.3.4.RELEASE) kie-server application based on https://start.jbpm.org/
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.