One Star

[resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

I have a job which runs without error. But when I execute that job as a subjob, I get the error below. This seems to have started happening spontaneously, since I have been running the job/subjob successfully for months, until yesterday when I started receiving the error.
I am running...
Version: 5.6.2
Build id: V5.6.2_20150508_1414
-------------------------
Starting job etl_run_full at 10:15 24/07/2015.
connecting to socket on port 3457
connected
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
at com.amazonaws.util.json.Jackson.<clinit>(Jackson.java:32)
at com.amazonaws.internal.config.InternalConfig.loadfrom(InternalConfig.java:230)
at com.amazonaws.internal.config.InternalConfig.load(InternalConfig.java:247)
at com.amazonaws.internal.config.InternalConfig$Factory.<clinit>(InternalConfig.java:282)
at com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:139)
at com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:134)
at com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:95)
at com.amazonaws.ClientConfiguration.<clinit>(ClientConfiguration.java:42)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:366)
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.tS3Connection_2Process(etl_copy_report_to_report_etl.java:1418)
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.tPostgresqlConnection_2Process(etl_copy_report_to_report_etl.java:1341)
disconnected
disconnected
disconnected
disconnected
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.tPostgresqlInput_1Process(etl_copy_report_to_report_etl.java:5735)
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.tPostgresqlConnection_1Process(etl_copy_report_to_report_etl.java:5398)
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.runJobInTOS(etl_copy_report_to_report_etl.java:8951)
at boomdw_etl_test.etl_copy_report_to_report_etl_14_0.etl_copy_report_to_report_etl.runJob(etl_copy_report_to_report_etl.java:8790)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.tRunJob_9Process(etl_run_full.java:1384)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.tJava_3Process(etl_run_full.java:1245)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.tLibraryLoad_2Process(etl_run_full.java:1123)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.tLibraryLoad_1Process(etl_run_full.java:1011)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.runJobInTOS(etl_run_full.java:7144)
at boomdw_etl_test.etl_run_full_14_1.etl_run_full.main(etl_run_full.java:6967)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 21 more
Job etl_run_full ended at 10:15 24/07/2015.
1 ACCEPTED SOLUTION

Accepted Solutions
Employee

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

Hi Jeff,
From the comment in the forum:
I have recreated the error with a single, simple job, after following these steps...
Reinstalled Talend Open Studio 5.6.2 and installed all components.
Added aws-java-sdk-1.9.13 and aws-java-sdk-1.10.2 to Talend via the Modules window.
Created a simple job with only a tS3Connection component.


I can't reproduced the problem on my side.
Please see the screenshot. After you click the "Code " to see the generate code, is the jar "aws-java-sdk-1.9.13" was include the lib ?
"com.amazonaws cannot be resolved to a type".


This error means that the jar was load fails.
For the new "aws-java-sdk", it is not correct that the the component include several different version jars,
it probably have some potential problem , so you need to create a feature for us to update the jar to a new version.

Any question please let us know.
Thanks
Regards

5 REPLIES
One Star

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

I have recreated the error with a single, simple job, after following these steps...

Reinstalled Talend Open Studio 5.6.2 and installed all components.
Added aws-java-sdk-1.9.13 and aws-java-sdk-1.10.2 to Talend via the Modules window.
Created a simple job with only a tS3Connection component.

In the code window I see two red-flagged errors on these lines:

com.amazonaws.auth.AWSCredentials credentials_tS3Connection_1 = new com.amazonaws.auth.BasicAWSCredentials(
"",
decryptedPassword_tS3Connection_1);
com.amazonaws.services.s3.AmazonS3Client conn_tS3Connection_1 = new com.amazonaws.services.s3.AmazonS3Client(
credentials_tS3Connection_1);

The error is "com.amazonaws cannot be resolved to a type".
One Star

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

I've worked around the issue and have eliminated the error, but I don't really know what I'm doing in the Talend/java environment so I'd appreciate any feedback anyone could provide on my "solution".
In the file C:\TOS\TOS_DI-Win32-20150508_1414-V5.6.2\plugins\org.talend.designer.components.localprovider_5.6.2.20150508_1414\components\tS3Connection\tS3Connection_java.xml, I added the second two imports shown below (they were not in the original xml file)...
   <CODEGENERATION>
    <IMPORTS>
       <IMPORT NAME="aws-java-sdk-1.9.13" MODULE="aws-java-sdk-1.9.13.jar" UrlPath="platform:/configuration/lib/java/aws-java-sdk-1.9.13.jar" REQUIRED="true" />
       <IMPORT NAME="aws-java-sdk-1.10.2" MODULE="aws-java-sdk-1.10.2.jar" UrlPath="platform:/configuration/lib/java/aws-java-sdk-1.10.2.jar" REQUIRED="true" />
       <IMPORT NAME="aws-java-sdk-1.10.5.1" MODULE="aws-java-sdk-1.10.5.1.jar" UrlPath="platform:/configuration/lib/java/aws-java-sdk-1.10.5.1.jar" REQUIRED="true" />
       <IMPORT NAME="Driver-Commons-Logging-1.1.1" MODULE="commons-logging-1.1.1.jar" UrlPath="platform:/base/plugins/org.apache.commons.logging_1.1.1.v201101211721.jar" REQUIRED="true" BundleID="" />
       <IMPORT NAME="httpcore-4.2.1" MODULE="httpcore-4.2.1.jar" UrlPath="platform:/plugin/org.talend.libraries.apache.http/lib/httpcore-4.2.1.jar" REQUIRED="true"/>
       <IMPORT NAME="httpclient-4.2.1" MODULE="httpclient-4.2.1.jar" UrlPath="platform:/plugin/org.talend.libraries.apache.http/lib/httpclient-4.2.1.jar" REQUIRED="true"/>
       <IMPORT NAME="jackson-annotations" MODULE="jackson-annotations-2.3.0.jar" UrlPath="platform:/plugin/org.talend.libraries.jackson/lib/jackson-annotations-2.3.0.jar" REQUIRED="true"/>
  <IMPORT NAME="jackson-core" MODULE="jackson-core-2.3.2.jar" UrlPath="platform:/plugin/org.talend.libraries.jackson/lib/jackson-core-2.3.2.jar" REQUIRED="true"/>
  <IMPORT NAME="jackson-databind" MODULE="jackson-databind-2.3.2.jar" UrlPath="platform:/plugin/org.talend.libraries.jackson/lib/jackson-databind-2.3.2.jar" REQUIRED="true"/>
  <IMPORT NAME="joda-time" MODULE="joda-time-2.3.jar" UrlPath="platform:/plugin/org.talend.libraries.jackson/lib/joda-time-2.3.jar" REQUIRED="true"/>
    </IMPORTS>
   </CODEGENERATION>

I also updated the path in the first import, because that jar wasn't located where the xml file originally indicated it was.
Fifteen Stars

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

A future Talend master in the making :-) Well found! 
What you have done is sound BUT this looks like a bug and will fail if anyone else tries to compile and run your job in their Studio or if you try and compile your job on a job server (if you are using the Enterprise Edition). 
Now you have found the cause (and a fix) I would log this with Talend support (if you have a contract with them) and/or raise an issue on their Jira bug system (https://jira.talendforge.org).
Rilhia Solutions
One Star

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

Thanks for your reply. Getting some validation on my fix is helpful and appreciated! I'm only a few months into Talend and it's going well so far, but this little puzzle had me stuck since yesterday morning so I'm glad to be past it. I'll be sure to file a JIRA issue. We're still on TOS and not yet an enterprise customer.
Employee

Re: [resolved] NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

Hi Jeff,
From the comment in the forum:
I have recreated the error with a single, simple job, after following these steps...
Reinstalled Talend Open Studio 5.6.2 and installed all components.
Added aws-java-sdk-1.9.13 and aws-java-sdk-1.10.2 to Talend via the Modules window.
Created a simple job with only a tS3Connection component.


I can't reproduced the problem on my side.
Please see the screenshot. After you click the "Code " to see the generate code, is the jar "aws-java-sdk-1.9.13" was include the lib ?
"com.amazonaws cannot be resolved to a type".


This error means that the jar was load fails.
For the new "aws-java-sdk", it is not correct that the the component include several different version jars,
it probably have some potential problem , so you need to create a feature for us to update the jar to a new version.

Any question please let us know.
Thanks
Regards