O fluxo de dados falha com java.lang.NoSuchMethodError: io.grpc.protobuf.ProtoUtils.marshaller (Lcom / google / protobuf / Message;)
Estou tentando executar um trabalho do Dataflow no Google Cloud. Sempre falha com:
java.lang.NoSuchMethodError: io.grpc.protobuf.ProtoUtils.marshaller (Lcom / google / protobuf / Message;) Lio / grpc / MethodDescriptor $ Marshaller
É um projeto inteligente, aqui estão minhas dependências:
<dependencies>
<dependency>
<groupId>com.google.cloud.dataflow</groupId>
<artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-pubsub</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
Eu tentei várias versões de dependência diferentes. o que estou perdendo?
Tem o mesmo resultado, seja eu executado via exec: java ou através de um jar de sombra.
Rastreio de pilha completa:
(e8dbd0c1b8b8a22): java.lang.NoSuchMethodError: io.grpc.protobuf.ProtoUtils.marshaller (Lcom / google / protobuf / Message;) Lio / grpc / MethodDescriptor $ Marshaller; em com.google.iam.v1.IAMPolicyGrpc. (IAMPolicyGrpc.java:56) em com.google.cloud.pubsub.spi.v1.PublisherSettings $ Builder. (PublisherSettings.java:487) em com.google.cloud.pubsub .spi.v1.PublisherSettings $ Builder.createDefault (PublisherSettings.java:508) em com.google.cloud.pubsub.spi.v1.PublisherSettings $ Builder.access $ 000 (PublisherSettings.java:402) em com.google.cloud. pubsub.spi.v1.PublisherSettings.defaultBuilder (PublisherSettings.java:224) em com.google.cloud.pubsub.spi.DefaultPubSubRpc. (DefaultPubSubRpc.java:138) em com.google.cloud.pubsub.PubSubOptions $ Default (PubSubOptions.java:60) em com.google.cloud.pubsub.PubSubOptions $ DefaultPubSubRpcFactory.create (PubSubOptions.java:54) em com.google.cloud.ServiceOptions.rpc (ServiceOptions.java:399) em com.google. cloud.pubsub.PubSubImpl. (PubSubImpl.java:115) em com.google.cloud.pubsub.PubSubOptions $ DefaultPubSubFactory.create (PubSubOptions.java:43) em com.google.cloud.pubsub.PubSubOptions $ DefaultPubSubImplants bOptions.java:38) em com.google.cloud.ServiceOptions.service (ServiceOptions.java:391) em com.google.lindsaysmith.titan.DataflowBulkLoadNodes $ SendPubSub.sendPubsubMessage (DataflowBulkLoadNodes.java:41) em com.google.linds .titan.DataflowBulkLoadNodes $ SendPubSub.processElement (DataflowBulkLoadNodes.java:32) em com.google.cloud.dataflow.sdk.util.SimpleDoFnRunner.invokeProcessElement (SimpleDoFnRunner.java:49) em com.google.doud.cloud.data .DoFnRunnerBase.processElement (DoFnRunnerBase.java:139) em com.google.cloud.dataflow.sdk.runners.worker.SimpleParDoFn.processElement (SimpleParDoFn.java:190) em com.google.cloud.dataflow.sdk.runners .ForwardingParDoFn.processElement (ForwardingParDoFn.java:42) em com.google.cloud.dataflow.sdk.runners.worker.DataflowWorkerLoggingParDoFn.processElement (DataflowWorkerLoggingParDoFn.java:47) em com.google.doud.com .worker.ParDoOperation.process (ParDoOperation.java:55) em