Google-cloud-java: NoClassDefFoundError: com/google/api/gax/retrying/RetrySettings at LanguageServiceSettings

Created on 12 Jun 2017  路  16Comments  路  Source: googleapis/google-cloud-java

Hi I've created a java class with a main method in order to test NLP API.

Extract of my pom.xml:

    <!-- Google Cloud Natural Language API -->
    <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-language</artifactId>
        <version>0.19.0-beta</version>
    </dependency>

In my GoogleTest java class I test others google APIs.

My method:

public static void myNaturalLanguageTest() throws IOException {

    //Instanciate a client
    LanguageServiceClient language = LanguageServiceClient.create();

    //Text to analyze
    String text = "Hello world";
    Document doc = Document.newBuilder().setContent(text).setType(Type.PLAIN_TEXT).build();

    //Detect the sentiment
    //TODO we obtained an error for the moment - 29-03-2017
    //java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
    Sentiment sentiment = language.analyzeSentiment(doc).getDocumentSentiment();

    System.out.printf("Text: %s%n", text);
    System.out.printf("Sentiment: %s, %s%n", sentiment.getScore(), sentiment.getMagnitude());
}

When I execute my java class, I obtain a NoCLassDefFoundError:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/api/gax/retrying/RetrySettings
    at com.google.cloud.language.spi.v1.LanguageServiceSettings$Builder.<clinit>(LanguageServiceSettings.java:245)
    at com.google.cloud.language.spi.v1.LanguageServiceSettings.defaultBuilder(LanguageServiceSettings.java:189)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.create(LanguageServiceClient.java:114)
    at com.xxx.product.xxx.google.test.GoogleTest.myNaturalLanguageTest(GoogleTest.java:396)
    at com.xxx.product.moderation.google.test.GoogleTest.main(GoogleTest.java:259)
Caused by: java.lang.ClassNotFoundException: com.google.api.gax.retrying.RetrySettings
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 5 more

Thanks.

language dependencies p1 question

All 16 comments

It is very likely you are using versions that aren't compatible with each other. Are you able to post the results of mvn dependency:tree? You'll probably see that multiple versions of gax are being pulled in by different versions of google-cloud-* packages. Your google-cloud-* packages all need to be from the same release.

Thanks @garrettjonesgoogle for the reply,
I had

    <!--Google Cloud Translation API -->
    <dependency>
    <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-translate</artifactId>
    <version>0.10.0-alpha</version>
    </dependency>

I removed it, and know I have another error:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/auth/ServiceAccountSigner
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.google.api.gax.core.GoogleCredentialsProvider.getCredentials(GoogleCredentialsProvider.java:54)
    at com.google.api.gax.grpc.InstantiatingChannelProvider.createChannel(InstantiatingChannelProvider.java:122)
    at com.google.api.gax.grpc.InstantiatingChannelProvider.getChannel(InstantiatingChannelProvider.java:116)
    at com.google.api.gax.grpc.ChannelAndExecutor.create(ChannelAndExecutor.java:66)
    at com.google.api.gax.grpc.ClientSettings.getChannelAndExecutor(ClientSettings.java:92)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.<init>(LanguageServiceClient.java:132)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.create(LanguageServiceClient.java:123)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.create(LanguageServiceClient.java:114)
    at com.xxx.product.xxx.google.test.GoogleTest.myNaturalLanguageTest(GoogleTest.java:392)
    at com.xxx.product.xx.google.test.GoogleTest.main(GoogleTest.java:255)
Caused by: java.lang.ClassNotFoundException: com.google.auth.ServiceAccountSigner
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 22 more

My dependency tree is huge, I read it and now I have only one version for gax and one version for gax-grpc:

[INFO]    |  +- com.google.cloud:google-cloud-language:jar:0.19.0-beta:compile
[INFO]    |  |  +- io.netty:netty-tcnative-boringssl-static:jar:1.1.33.Fork26:compile
[INFO]    |  |  +- com.google.cloud:google-cloud-core:jar:1.1.0:compile
[INFO]    |  |  |  +- joda-time:joda-time:jar:2.9.2:compile
[INFO]    |  |  |  +- com.google.api:api-common:jar:1.1.0:compile
**[INFO]    |  |  |  +- com.google.api:gax:jar:1.3.0:compile**
[INFO]    |  |  |  |  +- com.google.auto.value:auto-value:jar:1.2:compile
[INFO]    |  |  |  |  +- com.google.auth:google-auth-library-oauth2-http:jar:0.7.0:compile
[INFO]    |  |  |  |  \- org.threeten:threetenbp:jar:1.3.3:compile
[INFO]    |  |  |  +- com.google.protobuf:protobuf-java-util:jar:3.2.0:compile
[INFO]    |  |  |  +- com.google.api.grpc:proto-google-common-protos:jar:0.1.11:compile
[INFO]    |  |  |  \- com.google.api.grpc:proto-google-iam-v1:jar:0.1.11:compile
[INFO]    |  |  +- com.google.cloud:google-cloud-core-grpc:jar:1.1.0:compile
[INFO]    |  |  |  +- com.google.protobuf:protobuf-java:jar:3.2.0:compile
[INFO]    |  |  |  +- io.grpc:grpc-protobuf:jar:1.2.0:compile
[INFO]    |  |  |  |  \- io.grpc:grpc-protobuf-lite:jar:1.2.0:compile
**[INFO]    |  |  |  \- com.google.api:gax-grpc:jar:0.19.0:compile**

And you can find here an extract of one of my pom.xml file:

        <com.google.version>1.22.0</com.google.version>

        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-youtube</artifactId>
            <version>v3-rev182-${com.google.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-bigquery</artifactId>
            <version>v2-rev334-${com.google.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.apis/google-api-services-vision -->
        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-vision</artifactId>
            <version>v1-rev347-${com.google.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.apis/google-api-services-plus -->
        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-plus</artifactId>
            <version>v1-rev501-${com.google.version}</version>
        </dependency>

        <!-- Private Google API -->
        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-mybusiness</artifactId>
            <version>v3-java-rev20160505-1</version>
        </dependency>

        <dependency>
            <groupId>com.google.apis</groupId>
            <artifactId>google-api-services-calendar</artifactId>
            <version>v3-rev233-${com.google.version}</version>
        </dependency>

        <!--Google Cloud Translation API -->
<!--        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-translate</artifactId>
            <version>0.19.0-beta</version>
        </dependency> -->

        <!-- Google Cloud Natural Language API -->
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-language</artifactId>
            <version>0.19.0-beta</version>
        </dependency>

        <dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client</artifactId>
            <version>${com.google.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.http-client</groupId>
            <artifactId>google-http-client-jackson</artifactId>
            <version>${com.google.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.oauth-client</groupId>
            <artifactId>google-oauth-client-java6</artifactId>
            <version>${com.google.version}</version>
        </dependency>

Thanks.

Now I think you are seeing the issue noted in https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2050 . Add an explicit declaration of the versions of google-auth-library-credentials and google-auth-library-oauth2-http (they need to be at least 0.6.0 to avoid the ServiceAccountSigner problem).

Hi,
thanks for your reply.

Google Cloud Natural Language API version 0.19.0-beta come with library credentials version 0.4.0:

[INFO] |  |  |  +- com.google.auth:google-auth-library-oauth2-http:jar:0.7.0:compile
[INFO] |     \- com.google.auth:google-auth-library-credentials:jar:0.4.0:compile

I edited my pom.xml file:



com.google.cloud
google-cloud-language
0.19.0-beta


com.google.auth
google-auth-library-credentials


    <dependency>
        <groupId>com.google.auth</groupId>
        <artifactId>google-auth-library-credentials</artifactId>
        <version>0.7.0</version>
    </dependency>

And I got new errors:

AVERTISSEMENT: Runnable threw exception in ChannelExecutor
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java:308)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:61)
    at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209)
    at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186)
    at io.grpc.internal.ManagedChannelImpl$SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806)
    at io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568)
    at io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724)
    at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715)
    at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752)
    at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Thanks :-).

This means there is a problem with loading netty-tcnative-boringssl-static. Can you turn up your logging level to FINE? You should see logs from tcnative.

What platform are you running on? It's possible it's not a platform supported by tcnative yet. (tcnative is a native library.)

I'm simply executing a main method from a Java class from Eclipse with _Run As_..._Java Application_ and executing this:

    public static void myNaturalLanguageTest() throws IOException {

        System.out.println("- start -");

        //Instanciate a client
        System.out.println("instanciate LanguageServiceClient step");
        LanguageServiceClient language = LanguageServiceClient.create();

        //Text to analyze
        String text = "Hello world";
        System.out.println("text to analyze step");
        Document doc = Document.newBuilder().setContent(text).setType(Type.PLAIN_TEXT).build();
        System.out.println("We want to analyze text: " + doc.getContent());

        //Detect the sentiment
        //TODO we obtained an error for the moment - 29-03-2017
        //java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
        System.out.println("sentiment analyzing step");
        Sentiment sentiment = language.analyzeSentiment(doc).getDocumentSentiment();

        System.out.printf("Text: %s%n", text);
        System.out.printf("Sentiment: %s, %s%n", sentiment.getScore(), sentiment.getMagnitude());

        System.out.println("- end -");
    }

And here the logs:

- start -
instanciate LanguageServiceClient step
log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
text to analyze step
We want to analyze text: Hello world
sentiment analyzing step
juin 15, 2017 9:36:01 AM io.grpc.internal.ChannelExecutor drain
AVERTISSEMENT: Runnable threw exception in ChannelExecutor
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java:308)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:61)
    at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209)
    at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186)
    at io.grpc.internal.ManagedChannelImpl$SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806)
    at io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568)
    at io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724)
    at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715)
    at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752)
    at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Thanks.

To turn your logging level up to FINE, add this line at the beginning:

Logger.getLogger("").setLevel(Level.FINE);

When I'm asking about platform, I mean: Are you running on Linux, Windows, Mac, other? What specific version are you using?

I am running on Linux: Ubuntu 16.04 LTS.

And here the logs:

- start -
instanciate LanguageServiceClient step
log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
text to analyze step
We want to analyze text: Hello world
sentiment analyzing step
io.grpc.Context: Storage override doesn't exist. Using default.
java.lang.ClassNotFoundException: io.grpc.override.ContextStorageOverride
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at io.grpc.Context.<clinit>(Context.java:131)
    at io.grpc.internal.ClientCallImpl.<init>(ClientCallImpl.java:109)
    at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:560)
    at com.google.api.gax.grpc.AuthInterceptor.interceptCall(AuthInterceptor.java:55)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at com.google.api.gax.grpc.HeaderInterceptor.interceptCall(HeaderInterceptor.java:57)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:536)
    at com.google.api.gax.grpc.DescriptorClientCallFactory.newCall(DescriptorClientCallFactory.java:54)
    at com.google.api.gax.grpc.DirectCallable.futureCall(DirectCallable.java:58)
    at com.google.api.gax.grpc.ExceptionTransformingCallable.futureCall(ExceptionTransformingCallable.java:61)
    at com.google.api.gax.grpc.RetryingCallable$GrpcRetryCallable.call(RetryingCallable.java:138)
    at com.google.api.gax.grpc.RetryingCallable.futureCall(RetryingCallable.java:83)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:280)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:291)
    at com.google.api.gax.grpc.UnaryCallable.call(UnaryCallable.java:319)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:213)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:190)
    at com.xxx.product.xx.google.test.GoogleTest.myNaturalLanguageTest(GoogleTest.java:409)
    at com.xxx.product.xx.google.test.GoogleTest.main(GoogleTest.java:257)
juin 15, 2017 2:01:39 PM io.grpc.internal.ChannelExecutor drain
AVERTISSEMENT: Runnable threw exception in ChannelExecutor
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java:308)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:61)
    at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209)
    at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186)
    at io.grpc.internal.ManagedChannelImpl$SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806)
    at io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568)
    at io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724)
    at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715)
    at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752)
    at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Hmm you probably have to create a logging.properties file too to get FINE logs. Create such a file with this content:

.level = FINE

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = FINE

(i.e. the file at https://github.com/garrettjonesgoogle/gcloud-java/blob/deadline-exceeded-issue/google-cloud-example-docker-gradle/logging.properties )

Maybe somehow the tcnative dependency isn't being pulled in right? You could try explicitly declaring a dependency on it:

If you're using Maven:

    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-tcnative-boringssl-static</artifactId>
      <version>1.1.33.Fork26</version>
    </dependency>

If you're using Gradle:

compile io.netty:netty-tcnative-boringssl-static:1.1.33.Fork26

About tcnative, now, I have only one version in my dependencies, the one you told me to add:

[INFO] +- io.netty:netty-tcnative-boringssl-static:jar:1.1.33.Fork26:compile

And i've still the issue:

sentiment analyzing step
io.grpc.Context: Storage override doesn't exist. Using default.
java.lang.ClassNotFoundException: io.grpc.override.ContextStorageOverride
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at io.grpc.Context.<clinit>(Context.java:131)
    at io.grpc.internal.ClientCallImpl.<init>(ClientCallImpl.java:109)
    at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:560)
    at com.google.api.gax.grpc.AuthInterceptor.interceptCall(AuthInterceptor.java:55)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at com.google.api.gax.grpc.HeaderInterceptor.interceptCall(HeaderInterceptor.java:57)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:536)
    at com.google.api.gax.grpc.DescriptorClientCallFactory.newCall(DescriptorClientCallFactory.java:54)
    at com.google.api.gax.grpc.DirectCallable.futureCall(DirectCallable.java:58)
    at com.google.api.gax.grpc.ExceptionTransformingCallable.futureCall(ExceptionTransformingCallable.java:61)
    at com.google.api.gax.grpc.RetryingCallable$GrpcRetryCallable.call(RetryingCallable.java:138)
    at com.google.api.gax.grpc.RetryingCallable.futureCall(RetryingCallable.java:83)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:280)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:291)
    at com.google.api.gax.grpc.UnaryCallable.call(UnaryCallable.java:319)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:213)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:190)
    at com.xxx.product.xx.google.test.GoogleTest.myNaturalLanguageTest(GoogleTest.java:409)
    at com.xxx.product.xx.google.test.GoogleTest.main(GoogleTest.java:257)
juin 16, 2017 3:34:05 PM io.grpc.internal.ChannelExecutor drain
AVERTISSEMENT: Runnable threw exception in ChannelExecutor
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java:308)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:61)
    at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209)
    at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186)
    at io.grpc.internal.ManagedChannelImpl$SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806)
    at io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568)
    at io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724)
    at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715)
    at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752)
    at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Exception in thread "main" com.google.api.gax.grpc.ApiException: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED
    at com.google.api.gax.grpc.ExceptionTransformingCallable$ExceptionTransformingFuture.onFailure(ExceptionTransformingCallable.java:108)
    at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:53)
    at com.google.common.util.concurrent.Futures$6.run(Futures.java:1764)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
    at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:463)
    at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:439)
    at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:428)
    at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:76)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:514)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:431)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:546)
    at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
    at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:152)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED
    at io.grpc.Status.asRuntimeException(Status.java:540)
    ... 15 more

And here the entire logs with logging.properties set to FINE log level:

juin 16, 2017 4:22:37 PM com.google.api.client.http.HttpRequest execute
CONFIG: -------------- REQUEST  --------------
POST https://accounts.google.com/o/oauth2/token
Accept-Encoding: gzip
User-Agent: Google-HTTP-Java-Client/1.19.0 (gzip)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 175

juin 16, 2017 4:22:37 PM com.google.api.client.http.HttpRequest execute
CONFIG: curl -v --compressed -X POST -H 'Accept-Encoding: gzip' -H 'User-Agent: Google-HTTP-Java-Client/1.19.0 (gzip)' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -d '@-' -- 'https://accounts.google.com/o/oauth2/token' << $$$
juin 16, 2017 4:22:38 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
PR脡CIS: sun.net.www.MessageHeader@38d7a38 pairs: {POST /o/oauth2/token HTTP/1.1: null}{Accept-Encoding: gzip}{User-Agent: Google-HTTP-Java-Client/1.19.0 (gzip)}{Content-Type: application/x-www-form-urlencoded; charset=UTF-8}{Host: accounts.google.com}{Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length: 175}
juin 16, 2017 4:22:38 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: Total: 175 bytes
juin 16, 2017 4:22:38 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: grant_type=refresh_token&refresh_token=tata&client_id=toto.apps.googleusercontent.com&client_secret=titi
juin 16, 2017 4:22:38 PM sun.net.www.protocol.http.HttpURLConnection getInputStream0
PR脡CIS: sun.net.www.MessageHeader@a3e29714 pairs: {null: HTTP/1.1 200 OK}{Content-Type: application/json; charset=utf-8}{X-Content-Type-Options: nosniff}{Cache-Control: no-cache, no-store, max-age=0, must-revalidate}{Pragma: no-cache}{Expires: Mon, 01 Jan 1990 00:00:00 GMT}{Date: Fri, 16 Jun 2017 14:22:38 GMT}{Content-Disposition: attachment; filename="json.txt"; filename*=UTF-8''json.txt}{Content-Encoding: gzip}{Server: ESF}{X-XSS-Protection: 1; mode=block}{X-Frame-Options: SAMEORIGIN}{Alt-Svc: quic=":443"; ma=2592000; v="38,37,36,35"}{Transfer-Encoding: chunked}
juin 16, 2017 4:22:38 PM com.google.api.client.http.HttpResponse <init>
CONFIG: -------------- RESPONSE --------------
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Alt-Svc: quic=":443"; ma=2592000; v="38,37,36,35"
Server: ESF
X-Content-Type-Options: nosniff
Pragma: no-cache
Date: Fri, 16 Jun 2017 14:22:38 GMT
X-Frame-Options: SAMEORIGIN
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Disposition: attachment; filename="json.txt"; filename*=UTF-8''json.txt
Content-Encoding: gzip
Expires: Mon, 01 Jan 1990 00:00:00 GMT
X-XSS-Protection: 1; mode=block
Content-Type: application/json; charset=utf-8

juin 16, 2017 4:22:38 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: Total: 954 bytes
juin 16, 2017 4:22:38 PM com.google.api.client.util.LoggingByteArrayOutputStream close
CONFIG: {
  "access_token" : "toto",
  "expires_in" : 3600,
  "id_token" : "tutu",
  "token_type" : "Bearer"
}
access token (readKey) = ya29.GlxrBAdhGxStHinzHSOnjFByVfnxge1pxAFDrZ9QhKR75o72N9TMmuKOfCOmpg2o3aU4iK-2OTSsoNw0i8cj6lmgoev1PsttRZ2DnHb-Q73n_EvC1g_TTQCdMNtFZA
refresh token (deleteKey) = 1/kGbbO_jy-mZogV1IY7VGU1BhwmOqJZGhuqynq4GHiAU
- start -
instanciate LanguageServiceClient step
log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
juin 16, 2017 4:22:38 PM io.grpc.internal.ManagedChannelImpl <init>
PR脡CIS: [io.grpc.internal.ManagedChannelImpl-1] Created with target language.googleapis.com:443
text to analyze step
We want to analyze text: Hello world
sentiment analyzing step
io.grpc.Context: Storage override doesn't exist. Using default.
java.lang.ClassNotFoundException: io.grpc.override.ContextStorageOverride
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at io.grpc.Context.<clinit>(Context.java:131)
    at io.grpc.internal.ClientCallImpl.<init>(ClientCallImpl.java:109)
    at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:560)
    at com.google.api.gax.grpc.AuthInterceptor.interceptCall(AuthInterceptor.java:55)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at com.google.api.gax.grpc.HeaderInterceptor.interceptCall(HeaderInterceptor.java:57)
    at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:119)
    at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:536)
    at com.google.api.gax.grpc.DescriptorClientCallFactory.newCall(DescriptorClientCallFactory.java:54)
    at com.google.api.gax.grpc.DirectCallable.futureCall(DirectCallable.java:58)
    at com.google.api.gax.grpc.ExceptionTransformingCallable.futureCall(ExceptionTransformingCallable.java:61)
    at com.google.api.gax.grpc.RetryingCallable$GrpcRetryCallable.call(RetryingCallable.java:138)
    at com.google.api.gax.grpc.RetryingCallable.futureCall(RetryingCallable.java:83)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:280)
    at com.google.api.gax.grpc.UnaryCallable.futureCall(UnaryCallable.java:291)
    at com.google.api.gax.grpc.UnaryCallable.call(UnaryCallable.java:319)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:213)
    at com.google.cloud.language.spi.v1.LanguageServiceClient.analyzeSentiment(LanguageServiceClient.java:190)
    at com.xxx.product.xx.google.test.GoogleTest.myNaturalLanguageTest(GoogleTest.java:409)
    at com.xxx.product.xx.google.test.GoogleTest.main(GoogleTest.java:257)
juin 16, 2017 4:22:38 PM io.grpc.internal.ManagedChannelImpl exitIdleMode
PR脡CIS: [io.grpc.internal.ManagedChannelImpl-1] Exiting idle mode
juin 16, 2017 4:22:38 PM io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl onUpdate
PR脡CIS: [io.grpc.internal.ManagedChannelImpl-1] resolved address: [[servers=[[address=language.googleapis.com/216.58.208.234:443, attrs={}], [address=language.googleapis.com/216.58.198.202:443, attrs={}], [address=language.googleapis.com/216.58.204.106:443, attrs={}], [address=language.googleapis.com/216.58.209.234:443, attrs={}], [address=language.googleapis.com/216.58.201.234:443, attrs={}], [address=language.googleapis.com/216.58.206.234:443, attrs={}], [address=language.googleapis.com/216.58.213.138:443, attrs={}], [address=language.googleapis.com/216.58.213.170:443, attrs={}], [address=language.googleapis.com/216.58.204.138:443, attrs={}], [address=language.googleapis.com/216.58.204.234:443, attrs={}], [address=language.googleapis.com/172.217.19.234:443, attrs={}], [address=language.googleapis.com/172.217.22.138:443, attrs={}], [address=language.googleapis.com/2a00:1450:4007:811:0:0:0:200a:443, attrs={}]], attrs={}]], config={}
juin 16, 2017 4:22:38 PM io.grpc.internal.ManagedChannelImpl$LbHelperImpl createSubchannel
PR脡CIS: [io.grpc.internal.ManagedChannelImpl-1] io.grpc.internal.InternalSubchannel-3 created for [language.googleapis.com/216.58.208.234:443, language.googleapis.com/216.58.198.202:443, language.googleapis.com/216.58.204.106:443, language.googleapis.com/216.58.209.234:443, language.googleapis.com/216.58.201.234:443, language.googleapis.com/216.58.206.234:443, language.googleapis.com/216.58.213.138:443, language.googleapis.com/216.58.213.170:443, language.googleapis.com/216.58.204.138:443, language.googleapis.com/216.58.204.234:443, language.googleapis.com/172.217.19.234:443, language.googleapis.com/172.217.22.138:443, language.googleapis.com/2a00:1450:4007:811:0:0:0:200a:443]
juin 16, 2017 4:22:38 PM io.grpc.internal.ChannelExecutor drain
AVERTISSEMENT: Runnable threw exception in ChannelExecutor
java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured.
    at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151)
    at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139)
    at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335)
    at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java:308)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory.newClientTransport(CallCredentialsApplyingTransportFactory.java:61)
    at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209)
    at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186)
    at io.grpc.internal.ManagedChannelImpl$SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806)
    at io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568)
    at io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724)
    at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87)
    at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715)
    at io.grpc.internal.ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752)
    at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Have you figured out the right setup for netty? I'm having the same issue here trying to use Pubsub

Could you try updating to the latest version now (0.20.1)? We have updated the grpc dependency since 19.0, and also the tcnative dependency (now: 2.0.3.Final ). This upgrade fixes conflicts with some other Netty usages (e.g. Tomcat).

try to remove unused dependencies in pom, such as those artifactId is google-cloud

No response from the issue filer (after 3 weeks), so I'm going to close this out. I am going to consolidate issues related to the Jetty ALPN/NPN error in https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2266 .

Was this page helpful?
0 / 5 - 0 ratings