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! Go to 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>
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>
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |