I tried looking at the dependency tree but couldn't identify any discrepancy in versions. In general, NoClassDefFoundError occurs when a class is missing as well as static initializers fails. From the error, I feel that's the latter in this case. Is it possible to set a breakpoint at com.google.cloud.bigquery.storage.v1beta1.Storage line 5216 and see any failure in static fields of the Storage class?
On Thu, Mar 12, 2020 at 5:50 PM Zhiheng Huang <sylvon.w...@gmail.com> wrote: > Hi Tomo, > > Thanks for looking. Not the actual build.gradle, but this build.gradle > <https://gist.github.com/sylvon/908bd08424cfbcc91f1819ab5325d6fa> shows > the google/beam related dependencies I used. > > Thanks! > > On Thu, Mar 12, 2020 at 7:49 AM Tomo Suzuki <suzt...@google.com> wrote: > >> Hi Zhiheng, >> Would you share your pom.xml or build.gradle? I'd like to know the >> dependencies of your project. >> >> On Thu, Mar 12, 2020 at 12:37 AM Zhiheng Huang <sylvon.w...@gmail.com> >> wrote: >> >>> Hi, >>> >>> I am trying to use big query storage API on google dataflow, but I keep >>> getting: >>> >>> java.lang.NoClassDefFoundError: Could not initialize class >>> com.google.cloud.bigquery.storage.v1beta1.Storage >>> at >>> com.google.cloud.bigquery.storage.v1beta1.Storage$CreateReadSessionRequest.internalGetFieldAccessorTable(Storage.java:5216) >>> at >>> com.google.protobuf.GeneratedMessageV3.getAllFieldsMutable(GeneratedMessageV3.java:135) >>> at >>> com.google.protobuf.GeneratedMessageV3.getAllFields(GeneratedMessageV3.java:211) >>> at com.google.protobuf.TextFormat$Printer.print(TextFormat.java:324) >>> at com.google.protobuf.TextFormat$Printer.access$000(TextFormat.java:307) >>> at com.google.protobuf.TextFormat.print(TextFormat.java:68) >>> at com.google.protobuf.TextFormat.printToString(TextFormat.java:148) >>> at com.google.protobuf.AbstractMessage.toString(AbstractMessage.java:117) >>> at >>> org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:299) >>> at >>> org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:271) >>> at >>> org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:233) >>> at >>> org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:173) >>> at org.slf4j.helpers.MessageFormatter.format(MessageFormatter.java:151) >>> at org.slf4j.impl.SimpleLogger.formatAndLog(SimpleLogger.java:354) >>> at org.slf4j.impl.SimpleLogger.info(SimpleLogger.java:496) >>> at >>> org.apache.beam.sdk.io.gcp.bigquery.BigQueryStorageSourceBase.split(BigQueryStorageSourceBase.java:140) >>> at >>> org.apache.beam.sdk.io.gcp.bigquery.BigQueryStorageTableSource.split(BigQueryStorageTableSource.java:42) >>> ... >>> >>> >>> This seems like a library dependency problem. Anyone can point me to the >>> correct library dependency for using the API or know what might be wrong >>> here? I am using beam 2.19 and already included >>> "com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta1:0.83.0" and >>> "com.google.cloud:google-cloud-bigquerystorage:0.79.0-alpha" in my gradle >>> dependency. >>> >>> Thanks! >>> >>> >>> >> >> -- >> Regards, >> Tomo >> > > > -- > Sylvon Huang > -- Regards, Tomo