Cloud Spanner 的数据流:java.lang.IllegalArgumentException:Jetty ALPN/NPN 尚未正确配置

Dataflow with Cloud Spanner: java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured

我有一个将结果写入 Cloud Spanner 的数据流作业 table。当我 运行 在本地工作但在数据流上 运行 运行它时一切正常,出现以下错误 -

java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newSslContext(SpannerOptions.java:289)
    com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newChannel(SpannerOptions.java:278)
    com.google.cloud.spanner.SpannerOptions.createChannel(SpannerOptions.java:252)
    com.google.cloud.spanner.SpannerOptions.createChannels(SpannerOptions.java:239)
    com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:88)
    com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:43)
    com.google.cloud.spanner.SpannerOptions$Builder.build(SpannerOptions.java:179)

尝试创建 SpannerOptions 实例时出现此错误 -

val options: SpannerOptions = SpannerOptions.newBuilder().build()

我看到了 但像下面这样排除 netty-all 没有帮助。

libraryDependencies ++= libraries(
  apache_beam,
  circe,
  scalatest % Test,
  junit % Test,
  hamcrest % Test
).map(_.exclude("io.netty", "netty-all"))

我该怎么做才能解决这个问题?

通过将 google-cloud-spanner 版本与 Apache Beam 的 pom.xml 中指定的版本相匹配来修复。