问题描述
当我尝试在本地 Windows 环境中的 scala sbt 项目中运行谷歌云订阅者时,我遇到了这个问题。使用的版本如下:
java : 1.8.0_171"
scala : 2.11.8
以下是sbt库依赖的版本:
"com.google.cloud" % "google-cloud-pubsub" % "1.108.1","com.google.cloud" % "google-cloud-shared-dependencies" % "0.8.6" pomOnly(),"com.google.api.grpc" % "grpc-google-cloud-pubsub-v1" % "1.90.1","io.grpc" % "grpc-all" % "1.30.2"
部署是通过使用 sbt 程序集插件在 nohup 构建中运行胖 JAR 来完成的。
这是我得到的错误日志:
Caused by: java.lang.IllegalStateException: Expected the service InnerService [Failed] to be RUNNING,but the service has Failed
at com.google.common.util.concurrent.AbstractService.checkCurrentState(AbstractService.java:366)
at com.google.common.util.concurrent.AbstractService.awaitRunning(AbstractService.java:302)
at com.google.api.core.AbstractApiService.awaitRunning(AbstractApiService.java:96)
at services.externalservices.pubsub.GoogleCloudSubscriber$class.subscribeAsyncExample(GoogleCloudSubscriber.scala:89)
at services.externalservices.pubsub.GoogleCloudSubscriber$class.initialise(GoogleCloudSubscriber.scala:37)
at services.externalservices.pubsub.GoogleCloudSubscriberImpl.initialise(GoogleCloudSubscriber.scala:95)
at services.externalservices.pubsub.GoogleCloudSubscriber$class.$init$(GoogleCloudSubscriber.scala:27)
at services.externalservices.pubsub.GoogleCloudSubscriberImpl.<init>(GoogleCloudSubscriber.scala:95)
at services.externalservices.pubsub.GoogleCloudSubscriberImpl$$FastClassByGuice$$a4a053ae.newInstance(<generated>)
at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassproxy.newInstance(DefaultConstructionProxyFactory.java:89)
at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
at com.google.inject.internal.ConstructorBindingImpl$Factory .get(ConstructorBindingImpl.java:268)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
... 9 more
Caused by: java.lang.IllegalStateException: Could not find TLS ALPN provider; no working netty-tcnative,Conscrypt,or Jetty NPN/ALPN available
at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.defaultSslProvider(GrpcSslContexts.java:233)
at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:144)
at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:93)
at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:414)
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:513)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:314)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1600(InstantiatingGrpcChannelProvider.java:71)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:210)
at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:217)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:200)
at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:156)
at com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:272)
at com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:273)
at com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148)
at com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:248)
at com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120)
at com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:265)
但是,当使用 sbt run 命令在前台运行应用程序时,同一订阅者按预期工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)