【问题标题】:Running Google Cloud Vision from Linux Container on Azure从 Azure 上的 Linux 容器运行 Google Cloud Vision
【发布时间】:2019-11-18 01:41:28
【问题描述】:

使用 Windows Server、Tomcat 8 和 Java 7,我成功地使用 Google Cloud Vision API 对文档进行 OCR。

当我使用 Tomcat 9 和 Java 8 从 Azure 上的 Linux 容器执行相同的过程(使用相同的库等)时,我会得到以下信息:

java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been > properly configured. > at >
 io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:162) > at 
io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:136) > at 
io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:124) > at 
io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94) > at > 
io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:521) > 2019-10-24T13:33:37.831210199Z at > 
io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:514) > 2019-10-24T13:33:37.832461409Z at > 
io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.<init>(NettyChannelBuilder.java:453) > at > 
io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:312) > at > 
io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:324) > at > 
com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:165) > 2019-10-24T13:33:37.834701725Z at > 
com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:130) > 2019-10-24T13:33:37.835210729Z at > 
com.google.api.gax.rpc.ClientContext.create(ClientContext.java:122) > at > 
com.google.cloud.vision.v1.stub.GrpcImageAnnotatorStub.create(GrpcImageAnnotatorStub.java:62) > at > 
com.google.cloud.vision.v1.ImageAnnotatorSettings.createStub(ImageAnnotatorSettings.java:101) > at > 
com.google.cloud.vision.v1.ImageAnnotatorClient.<init>(ImageAnnotatorClient.java:130) > at > 
com.google.cloud.vision.v1.ImageAnnotatorClient.create(ImageAnnotatorClient.java:111) > at > 
com.google.cloud.vision.v1.ImageAnnotatorClient.create(ImageAnnotatorClient.java:102)

有什么想法吗?

我的 GOOGLE_APPLICATION_CREDENTIALS 设置正确:

从我的研究看来,可能存在某种兼容性问题,可能与我使用的 netty 版本有关。

【问题讨论】:

标签: azure tomcat google-cloud-vision


【解决方案1】:

我发现了问题。 Linux Web 应用程序配置为使用 Java 8,而我的 Eclipse 环境具有 jdk-12.0.2。

当我将 Web Apps 容器更改为 Java 11(和 Tomcat 9.0)时,它就可以工作了!

感谢@Kolban 提供a link to a troubleshooting page,其中包括以下内容:

如果您使用的是 32 位操作系统,则使用 Java 11+ 可能是 最简单的解决方案,因为 ALPN 在 Java 9 中被添加到 Java。如果在 32 位 Windows,Conscrypt 是一种选择。否则你需要建立自己的 32 位版本的 netty-tcnative。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2016-08-24
    • 2017-07-07
    • 1970-01-01
    • 2022-11-03
    • 2018-07-20
    • 1970-01-01
    相关资源
    最近更新 更多