java.lang.LinkageError: loader constraint violation: when resolving overridden method

We are using java callout with in a proxy and during execution it throws java.lang.LinkageError .

Standalone program works but when we deploy the proxy and it throws below error.

Verified for any duplicates in jars but couldn't find any related to xercesImpl-2.9.1.jar.

==

JDK1.8.x

OPDK 4.16.09

==

	Exception
	java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.xerces.jaxp.DocumentBuilderImpl.setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" 
	the class loader (instance of com/apigee/messaging/resource/JavaResourceClassLoader) of the current class, org/apache/xerces/jaxp/DocumentBuilderImpl, and its superclass loader (instance of <bootloader>), 
	ave different Class objects for the type org/xml/sax/ErrorHandler used in the signature
	  at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
	  at com.apigeepki.YYYYY.getDocument(YYYYY.java:46) ~[na:na]
	  at com.apigeepki.XXXXX.execute(XXXXX.java:46) ~[na:na]
	  at com.apigee.steps.javacallout.JavaCalloutStepDefinition$ClassLoadWrappedExecution.execute(JavaCalloutStepDefinition.java:166) ~[javacallout-1.0.0.jar:na]
	  at com.apigee.steps.javacallout.JavaCalloutStepDefinition$SecurityWrappedExecution$1.run(JavaCalloutStepDefinition.java:231) ~[javacallout-1.0.0.jar:na]
	  at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_112]
	  at com.apigee.steps.javacallout.JavaCalloutStepDefinition$SecurityWrappedExecution.execute(JavaCalloutStepDefinition.java:228) ~[javacallout-1.0.0.jar:na]
	  at com.apigee.steps.javacallout.JavaCalloutStepDefinition$CallOutWrapper.execute(JavaCalloutStepDefinition.java:101) ~[javacallout-1.0.0.jar:na]
	  at com.apigee.messaging.runtime.steps.StepExecution.execute(StepExecution.java:146) ~[message-processor-1.0.0.jar:na]
	  at com.apigee.flow.execution.AbstractAsyncExecutionStrategy$AsyncExecutionTask.call(AbstractAsyncExecutionStrategy.java:74) ~[message-flow-1.0.0.jar:na]
	  at com.apigee.flow.execution.AbstractAsyncExecutionStrategy$AsyncExecutionTask.call(AbstractAsyncExecutionStrategy.java:45) ~[message-flow-1.0.0.jar:na]
	  at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
	  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_112]
	  at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
	  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_112]
	  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_112]
	  at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]

==

Any suggestion as how to resolve it?

Solved Solved
0 2 16.5K
1 ACCEPTED SOLUTION

xmlParserAPIs was causing issue. Excluded in pom.xml to resolve it.

<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
<exclusions>

<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
</exclusions>
</dependency>

View solution in original post

2 REPLIES 2

Problem is we have to use xerces and without it can't build. Looks like on the server

/opt/apigee/edge-message-processor-4.16.09-0.0.751/lib/thirdparty I see the jars and not sure if they are conflicting/ creating issues.Please suggest.

xercesImpl-2.9.1.jar

xml-apis-1.0.b2.jar

<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
</dependency>

xmlParserAPIs was causing issue. Excluded in pom.xml to resolve it.

<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.9.1</version>
<exclusions>

<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
</exclusions>
</dependency>