1
我有一個將結果寫入Cloud Spanner表的數據流作業。一切工作正常,當我在本地運行工作,但運行它在數據流提供了以下錯誤 -Data Span with Cloud Spanner:java.lang.IllegalArgumentException:Jetty ALPN/NPN尚未正確配置
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
例如像,所以當這個錯誤 - 我看到了this question
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"))
我該怎麼做才能解決這個問題?
您使用的是什麼版本的Cloud Spanner Java庫?如果您的構建路徑中存在多個衝突版本的Tcnative,或者缺少它,則此錯誤是典型的。在最近版本的Cloud Spanner庫中,tcnative軟件包已從「io.netty.tcnative」移動到「io.netty.internal.tcnative」。你可以嘗試從你的依賴中排除後者,看看它是否有幫助。 –
@KnutOlavLoite我發現這個錯誤發生於''com.google.cloud「%」google-cloud-pubsub「%」0.21.1-beta「'是項目的依賴項。你有什麼信息嗎?謝謝! – Kakaji
我可以看到''com.google.cloud「%」google-cloud-pubsub「%」0.21.1-beta「'引入了'io.netty:netty-tcnative-boringssl-static:2.0.3.Final'進入清除Beam需要的'io.netty:netty-tcnative-boringssl-static:1.1.33.Fork26'的項目。直接用'1.1.33.Fork26'覆蓋'2.0.3'並沒有幫助。 – Kakaji