Josh, what did you do to work around this? This suddenly crept up on a production pipeline yesterday, without anything changing on our side (we do rebuild at every run).
Jacob On Fri, Dec 8, 2017 at 6:46 PM, Chamikara Jayalath <[email protected]> wrote: > Created https://issues.apache.org/jira/browse/BEAM-3321 to update > the gax-grpc dependency of Beam. > > - Cham > > On Friday, December 8, 2017 at 6:12:20 PM UTC-8, Harsh Vardhan wrote: >> >> +chamikara@ >> >> >> On Friday, December 8, 2017 at 1:31:00 AM UTC-8, Joshua Fox wrote: >>> >>> I use Cloud Datastore API to check for Kinds in the Datastore, then use >>> Dataflow -- now upgrading to Beam -- to copy one Datastore to another.. >>> >>> After adding beam-sdks-java-io-google-cloud-platform to my pom, I start >>> getting this when initializing the Cloud Datastore API >>> >>> Exception in thread "main" java.lang.NoClassDefFoundError: >>> com/google/api/gax/retrying/ResultRetryAlgorithm >>> at com.google.cloud.datastore.DatastoreOptions$DefaultDatastore >>> Factory.create(DatastoreOptions.java:51) >>> at com.google.cloud.datastore.DatastoreOptions$DefaultDatastore >>> Factory.create(DatastoreOptions.java:45) >>> at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:426) >>> >>> It is caused by gax dependencies. >>> >>> Specifically, before I add beam-sdks-java-io-google-cloud-platform there >>> is this gax dependency >>> >>> +- com.google.cloud:google-cloud-datastore:jar:1.12.0:compile >>> | +- com.google.cloud:google-cloud-core:jar:1.12.0:compile >>> | | +- com.google.api:gax:jar:1.15.0:compile >>> >>> >>> >>> and after I add it there is this >>> >>> +- org.apache.beam:beam-sdks-java-io-google-cloud-platform:jar: >>> 2.2.0:compile >>> | +- com.google.api:gax-grpc:jar:0.20.0:compile >>> | | +- com.google.api:gax:jar:1.3.1:compile >>> >>> >>> If I add gax 1.15.0 to my pom explicitly, I get >>> >>> Exception in thread "main" java.lang.NoClassDefFoundError: >>> com/google/api/gax/retrying/ExceptionRetryAlgorithm >>> at java.lang.ClassLoader.defineClass1(Native Method) >>> .. >>> at com.google.cloud.BaseService.<clinit>(BaseService.java:48) >>> at com.google.cloud.datastore.DatastoreOptions$DefaultDatastore >>> Factory.create(DatastoreOptions.java:51) >>> at com.google.cloud.datastore.DatastoreOptions$DefaultDatastore >>> Factory.create(DatastoreOptions.java:45) >>> at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:426) >>> >>> Clearly Datastore and Beam should work together. Yet there have been >>> dependency problems between the two for a while. See this discussion >>> <https://stackoverflow.com/questions/40830727/> from 1 year ago. >>> >>> How can I resolve this? >>> >>
