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
1 ACCEPTED SOLUTION

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
1 REPLY
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