Problem Description:


Export to BigQuery will fail with the below error in the job log.


Caught exception: java.lang.NoSuchMethodError: com.google.api.client.json.jackson2.JacksonFactory.getDefaultInstance()Lcom/google/api/client/json/jackson2/JacksonFactory;


Root cause:


This issue occurs if an incorrect Jackson jar (f.e.g. google-http-client-jackson-1.23.0.jar) is getting picked up which does not have the method getDefaultInstance()


Solution:

Perform the below steps to resolve this issue.


a) Add the jar /opt/infoworks/lib/cloud/google-http-client-jackson2-1.23.0.jar to iw_export_classpath in /opt/infoworks/conf/conf.properties fie and run the export job. 

for example

Before change:
/opt/infoworks/lib/cloud/slf4j-api-1.7.25.jar:/opt/infoworks/lib/cloud/log4j-1.2.17.jar:/opt/infoworks/lib/cloud/guava-20.0.jar:/opt/infoworks/lib/cloud/slf4j-log4j12-1.7.25.jar:/opt/infoworks/lib/schemacrawler-12.06.03-main/schemacrawler-12.06.03.jar:/opt/infoworks/lib/mongodb/mongo-java-driver-3.8.0.jar:/opt/infoworks/bin/tools.jar:/opt/infoworks/lib/exec/commons-exec-1.2.jar:/opt/infoworks/lib/teradata/tdgssconfig.jar:/opt/infoworks/lib/teradata/teradata-connector-1.1.1.jar:/opt/infoworks/lib/teradata/terajdbc4.jar:/opt/infoworks/lib/mongodblogger/logger.jar:/opt/infoworks/lib/mongodblogger/log4mongo-java-0.7.4.jar:/opt/infoworks/lib/antlr/*:/opt/infoworks/lib/jackson/*:/opt/infoworks/lib/jsqlparser/*:/opt/infoworks/lib/shared/*:/opt/infoworks/lib/jwt/*:/usr/lib/hive/lib/*:/usr/lib/hive-hcatalog/share/hcatalog/*:/usr/lib/hive/conf:/opt/infoworks/lib/commons-lang3/*:/opt/infoworks/lib/cloud/*:/opt/infoworks/platform/bin/notification-common.jar:/opt/infoworks/platform/bin/platform-common.jar

After change :
/opt/infoworks/lib/cloud/slf4j-api-1.7.25.jar:/opt/infoworks/lib/cloud/log4j-1.2.17.jar:/opt/infoworks/lib/cloud/guava-20.0.jar:/opt/infoworks/lib/cloud/google-http-client-jackson2-1.23.0.jar:/opt/infoworks/lib/cloud/slf4j-log4j12-1.7.25.jar:/opt/infoworks/lib/schemacrawler-12.06.03-main/schemacrawler-12.06.03.jar:/opt/infoworks/lib/mongodb/mongo-java-driver-3.8.0.jar:/opt/infoworks/bin/tools.jar:/opt/infoworks/lib/exec/commons-exec-1.2.jar:/opt/infoworks/lib/teradata/tdgssconfig.jar:/opt/infoworks/lib/teradata/teradata-connector-1.1.1.jar:/opt/infoworks/lib/teradata/terajdbc4.jar:/opt/infoworks/lib/mongodblogger/logger.jar:/opt/infoworks/lib/mongodblogger/log4mongo-java-0.7.4.jar:/opt/infoworks/lib/antlr/*:/opt/infoworks/lib/jackson/*:/opt/infoworks/lib/jsqlparser/*:/opt/infoworks/lib/shared/*:/opt/infoworks/lib/jwt/*:/usr/lib/hive/lib/*:/usr/lib/hive-hcatalog/share/hcatalog/*:/usr/lib/hive/conf:/opt/infoworks/lib/commons-lang3/*:/opt/infoworks/lib/cloud/*:/opt/infoworks/platform/bin/notification-common.jar:/opt/infoworks/platform/bin/platform-common.jar

The google-http-client-jackson2-1.23.0.jar has the getDefaultInstance() method.


Applicable Infoworks Versions:

v2.7.x,v2.8.x