NoSuchMethodError when using S3 components

One Star

NoSuchMethodError when using S3 components

Hi, I have consistently been getting the following error when attempting to use some S3 components to upload some files to buckets. I had this problem in 5.4.0 and Talend crashed and destroyed my work (including unrelated jobs). I have upgraded to 5.4.1 and recreated all my jobs that were lost, however this error persists.
Even more strange, I created a job before I had this error and that job still works. If I start creating my new job by building from the older job it sometimes works, but any new job I create cannot use the S3 components. And if I make too many changes to the old job (just changing other component settings), it will also stop working.
Please help me resolve this, I cannot afford to lose my work again.
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactorySmiley WinkV
at org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:47)
at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:93)
at com.amazonaws.http.ConnectionManagerFactory.createPoolingClientConnManager(ConnectionManagerFactory.java:26)
at com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:87)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:121)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:66)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:304)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:286)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.tS3Connection_1Process(Stacker_completion_attempt.java:5133)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.tFileList_2Process(Stacker_completion_attempt.java:4985)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.tRESTClient_1Process(Stacker_completion_attempt.java:2746)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.tJava_1Process(Stacker_completion_attempt.java:846)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.runJobInTOS(Stacker_completion_attempt.java:12741)
at bsm_reporting.stacker_completion_attempt_0_1.Stacker_completion_attempt.main(Stacker_completion_attempt.java:12606)
Job Stacker_completion_attempt ended at 00:34 01/01/2014.
Employee

Re: NoSuchMethodError when using S3 components

Hi,
I don't reproduce your problem. Could you please let me know which components are in your job?
Reading the stack trace, it seems you don't have the good version of httpclient in the job classpath, as if you put another version of this jar by yourself (or using another component). That(s why I'm interested by getting the list of the components which are in your job.
Cheers,
Rémy.
One Star

Re: NoSuchMethodError when using S3 components

Hi Remy, thanks so much for looking at this. Here is a screenshot of all my components.
I checked \TOS_BD-r111943-V5.4.1\lib\java and found:
httpclient-4.0.1.jar
httpclient-4.0.1-sources.jar
httpcore-4.0.1.jar
httpcore-4.0.1-sources.jar
I saw that the Talend S3 components require httpcore-4.2.1.jar and httpclient-4.2.1.jar, so I replaced the old versions in \lib\java with these two newer file versions, but the job is still having the same errors. Is there a better way to register the libraries with Talend?
Your help is REALLY appreciated.
Royce