[resolved] Talend ESB Runtime - LinkageError when resolving SoapFault

Four Stars

[resolved] Talend ESB Runtime - LinkageError when resolving SoapFault

Hi,
I've created a service which runs fine (both successful and fault response) when running in Open Studio however, when I export the service and deploy it to my Talend ESB SE Runtime environment, I get the following error when attempting to send a fault response (tESBProviderFault) and my request will eventually timeout.  On successful requests, the service is responding OK.
2015-02-10 09:16:12,590 | ERROR | pool-13-thread-3 | JobExecutorFactory               | er.internal.JobExecutorFactory$1   35 | 191 - org.talend.esb.job.controller - 5.5.1 | Uncaught exception in job executor thread:
java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.cxf.binding.soap.SoapFault.<init>(Ljava/lang/String;Ljavax/xml/namespace/QNameSmiley WinkV" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, my_company/svinventoryporttypesoap_getsitetankconfig_0_1/svInventoryPortTypeSOAP_GetSiteTankConfig$ESBProviderCallbackTalendJobWrapper_tESBProviderRequest_1, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, org/apache/cxf/binding/soap/SoapFault, have different Class objects for the type javax/xml/namespace/QNameSmiley WinkV used in the signature
        at my_company.svinventoryporttypesoap_getsitetankconfig_0_1.svInventoryPortTypeSOAP_GetSiteTankConfig$ESBProviderCallbackTalendJobWrapper_tESBProviderRequest_1.sendBusinessFault(svInventoryPortTypeSOAP_GetSiteTankConfig.java:739)
        at my_company.svinventoryporttypesoap_getsitetankconfig_0_1.svInventoryPortTypeSOAP_GetSiteTankConfig.tESBProviderRequest_1_LoopProcess(svInventoryPortTypeSOAP_GetSiteTankConfig.java:2793)
        at my_company.svinventoryporttypesoap_getsitetankconfig_0_1.svInventoryPortTypeSOAP_GetSiteTankConfig.runJobInTOS(svInventoryPortTypeSOAP_GetSiteTankConfig.java:3169)
        at org.talend.esb.job.controller.internal.RuntimeESBProviderCallback.run(RuntimeESBProviderCallback.java:120)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)

I'm hoping someone could help point me in the right direction to resolve this issue as my Google search has come up empty thus far.
Thanks,
tbourque

Accepted Solutions
Four Stars

Re: [resolved] Talend ESB Runtime - LinkageError when resolving SoapFault

Hi,
I was able to resolve my own issue.  After using 7-zip to browse within my .kar file, I was able to find that the xml-apis-xerces-2.9.1.jar file was included within my service job jar file.  I then changed to the Java perspective within Open Studio and performed a File Search for xml-apis-xerces-2.9.1.jar and found that it was found within a UserDefined routine properties file for a routine that was completely unrelated to my service job.  Once I removed the routine from my job's dependency (right-click on the job and select Setup Routine Dependencies) and re-exported my service, I no longer experienced the LinkageError.
Thanks,
tbourque

All Replies
Four Stars

Re: [resolved] Talend ESB Runtime - LinkageError when resolving SoapFault

Hi,
I was able to resolve my own issue.  After using 7-zip to browse within my .kar file, I was able to find that the xml-apis-xerces-2.9.1.jar file was included within my service job jar file.  I then changed to the Java perspective within Open Studio and performed a File Search for xml-apis-xerces-2.9.1.jar and found that it was found within a UserDefined routine properties file for a routine that was completely unrelated to my service job.  Once I removed the routine from my job's dependency (right-click on the job and select Setup Routine Dependencies) and re-exported my service, I no longer experienced the LinkageError.
Thanks,
tbourque