Jetty ALPN/NPN 未正确配置

Posted

技术标签:

【中文标题】Jetty ALPN/NPN 未正确配置【英文标题】:Jetty ALPN/NPN has not been properly configured 【发布时间】:2018-07-23 18:42:45 【问题描述】:

不重复

java.lang.IllegalArgumentException: Jetty ALPN/NPN has not been properly configured(不使用 SpringBoot 或 Tomcat) Google-Cloud: Jetty ALPN/NPN has not been properly configured(同上) GRPC - .IllegalArgumentException: Jetty ALPN/NPN has not been properly configured(不使用 Docker 容器)

刚开始尝试在我的 GAE(标准)应用中首次使用 Google Cloud PubSub。尝试创建主题时出现以下异常:

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)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:514)
    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)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:130)
    at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:122)
    at com.google.cloud.pubsub.v1.stub.GrpcPublisherStub.create(GrpcPublisherStub.java:160)
    at com.google.cloud.pubsub.v1.TopicAdminSettings.createStub(TopicAdminSettings.java:200)
    at com.google.cloud.pubsub.v1.TopicAdminClient.<init>(TopicAdminClient.java:152)
    at com.google.cloud.pubsub.v1.TopicAdminClient.create(TopicAdminClient.java:134)
    at com.google.cloud.pubsub.v1.TopicAdminClient.create(TopicAdminClient.java:126)
    at com.example.api2.PubSub.createTopic(PubSub.java:53)
    ...

似乎是 jar 版本不兼容的问题。在调查时,我来到了这个Troubleshooting 部分。查看库的版本,我有以下内容:

grpc-netty:1.7.0 netty-codec-http2: 4.1.16.Final netty-tcnative-boringssl-static:2.0.6.Final

根据该部分中的表格,这是“已知可行版本组合”之一(强调我的)。那我错过了什么?

我的完整依赖树:

--- maven-dependency-plugin:2.8:tree (default-cli) @ xyz ---
com.example:xyz:war:0.1-SNAPSHOT
+- com.google.appengine:appengine-api-1.0-sdk:jar:1.9.59:compile
+- javax.servlet:servlet-api:jar:2.5:provided (scope not updated to compile)
+- com.google.guava:guava:jar:20.0:compile
+- com.google.http-client:google-http-client-appengine:jar:1.21.0:compile
|  \- com.google.http-client:google-http-client:jar:1.21.0:compile
|     +- (com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for conflict with 3.0.1)
|     \- org.apache.httpcomponents:httpclient:jar:4.0.1:compile
|        +- org.apache.httpcomponents:httpcore:jar:4.0.1:compile
|        +- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for conflict with 1.2)
|        \- commons-codec:commons-codec:jar:1.3:compile
+- org.apache.commons:commons-lang3:jar:3.4:compile
+- commons-io:commons-io:jar:2.4:compile
+- com.googlecode.objectify:objectify:jar:5.1.9:compile
|  \- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 20.0)
+- org.apache.shiro:shiro-core:jar:1.2.4:compile
|  +- org.slf4j:slf4j-api:jar:1.6.4:compile
|  \- (commons-beanutils:commons-beanutils:jar:1.8.3:compile - omitted for conflict with 1.9.2)
+- org.apache.shiro:shiro-web:jar:1.2.4:compile
|  \- (org.apache.shiro:shiro-core:jar:1.2.4:compile - omitted for duplicate)
+- commons-validator:commons-validator:jar:1.5.0:compile
|  +- (commons-beanutils:commons-beanutils:jar:1.9.2:compile - omitted for conflict with 1.8.3)
|  +- commons-digester:commons-digester:jar:1.8.1:compile
|  +- commons-logging:commons-logging:jar:1.2:compile
|  \- commons-collections:commons-collections:jar:3.2.2:compile
+- commons-beanutils:commons-beanutils:jar:1.9.2:compile
|  +- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for conflict with 1.2)
|  \- (commons-collections:commons-collections:jar:3.2.1:compile - omitted for conflict with 3.2.2)
+- org.glassfish.jersey.core:jersey-server:jar:2.9:compile
|  +- org.glassfish.jersey.core:jersey-common:jar:2.9:compile
|  |  +- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
|  |  +- (javax.annotation:javax.annotation-api:jar:1.2:compile - omitted for duplicate)
|  |  +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.9:compile
|  |  +- (org.glassfish.hk2:hk2-api:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2:hk2-locator:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
|  +- org.glassfish.jersey.core:jersey-client:jar:2.9:compile
|  |  +- (org.glassfish.jersey.core:jersey-common:jar:2.9:compile - omitted for duplicate)
|  |  +- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2:hk2-api:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  \- (org.glassfish.hk2:hk2-locator:jar:2.3.0-b05:compile - omitted for duplicate)
|  +- javax.ws.rs:javax.ws.rs-api:jar:2.0:compile
|  +- javax.annotation:javax.annotation-api:jar:1.2:compile
|  +- org.glassfish.hk2:hk2-api:jar:2.3.0-b05:compile
|  |  +- org.glassfish.hk2:hk2-utils:jar:2.3.0-b05:compile
|  |  \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.3.0-b05:compile
|  +- org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile
|  +- org.glassfish.hk2:hk2-locator:jar:2.3.0-b05:compile
|  |  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2.external:aopalliance-repackaged:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2:hk2-api:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.hk2:hk2-utils:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  \- org.javassist:javassist:jar:3.18.1-GA:compile
|  \- javax.validation:validation-api:jar:1.1.0.Final:compile
+- org.glassfish.jersey.containers:jersey-container-servlet:jar:2.9:compile
|  +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.9:compile
|  |  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  |  +- (org.glassfish.jersey.core:jersey-server:jar:2.9:compile - omitted for duplicate)
|  |  +- (org.glassfish.jersey.core:jersey-common:jar:2.9:compile - omitted for duplicate)
|  |  \- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
|  +- (org.glassfish.jersey.core:jersey-common:jar:2.9:compile - omitted for duplicate)
|  +- (org.glassfish.jersey.core:jersey-server:jar:2.9:compile - omitted for duplicate)
|  \- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
+- org.glassfish.jersey.ext:jersey-mvc-jsp:jar:2.9:compile
|  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  +- (org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.9:compile - omitted for duplicate)
|  +- org.glassfish.jersey.ext:jersey-mvc:jar:2.9:compile
|  |  +- (javax.servlet:servlet-api:jar:2.4:compile - omitted for conflict with 2.5)
|  |  +- (org.glassfish.jersey.core:jersey-server:jar:2.9:compile - omitted for duplicate)
|  |  \- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
|  \- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
+- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.9:runtime
|  +- (org.glassfish.jersey.core:jersey-common:jar:2.9:runtime - omitted for duplicate)
|  +- (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.3.2:runtime - omitted for conflict with 2.9.4)
|  \- (com.fasterxml.jackson.core:jackson-annotations:jar:2.3.2:compile - scope updated from runtime; omitted for duplicate)
+- org.glassfish.jersey.media:jersey-media-multipart:jar:2.9:compile
|  +- (org.glassfish.hk2.external:javax.inject:jar:2.3.0-b05:compile - omitted for duplicate)
|  +- (org.glassfish.jersey.core:jersey-server:jar:2.9:compile - omitted for duplicate)
|  \- org.jvnet.mimepull:mimepull:jar:1.9.3:compile
+- org.glassfish.jersey.ext:jersey-mvc-freemarker:jar:2.9:compile
|  +- (org.glassfish.jersey.ext:jersey-mvc:jar:2.9:compile - omitted for duplicate)
|  \- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate)
+- com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile
+- com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile
|  +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.3.2:compile - omitted for conflict with 2.9.4)
|  \- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
+- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.4:compile
+- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.9.4:compile
|  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.9.4:compile
|  |  +- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
|  |  \- (com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile - omitted for duplicate)
|  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.9.4:compile
|     +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile - omitted for conflict with 2.9.4)
|     +- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
|     \- (com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile - omitted for duplicate)
+- com.fasterxml.jackson.dataformat:jackson-dataformat-csv:jar:2.9.4:compile
|  +- (com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile - omitted for duplicate)
|  +- (com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile - omitted for conflict with 2.9.4)
|  \- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
+- com.fasterxml.jackson.datatype:jackson-datatype-guava:jar:2.9.4:compile
|  +- (com.google.guava:guava:jar:18.0:compile - omitted for conflict with 20.0)
|  +- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
|  \- (com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile - omitted for duplicate)
+- com.fasterxml.jackson.module:jackson-module-afterburner:jar:2.9.4:compile
|  +- (com.fasterxml.jackson.core:jackson-core:jar:2.9.4:compile - omitted for duplicate)
|  \- (com.fasterxml.jackson.core:jackson-databind:jar:2.9.4:compile - omitted for duplicate)
+- com.github.rjeschke:txtmark:jar:0.13:compile
+- org.projectlombok:lombok:jar:1.16.6:provided
+- org.mindrot:jbcrypt:jar:0.3m:compile
+- org.jsoup:jsoup:jar:1.8.3:compile
+- com.twitter:twitter-text:jar:1.13.4:compile
+- joda-time:joda-time:jar:2.9.6:compile
+- com.google.cloud:google-cloud-pubsub:jar:0.32.0-beta:compile
|  +- io.netty:netty-tcnative-boringssl-static:jar:2.0.6.Final:compile
|  +- com.google.cloud:google-cloud-core:jar:1.14.0:compile
|  |  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  |  +- (joda-time:joda-time:jar:2.9.2:compile - omitted for conflict with 2.9.6)
|  |  +- (org.json:json:jar:20160810:compile - omitted for duplicate)
|  |  +- (com.google.http-client:google-http-client:jar:1.23.0:compile - omitted for conflict with 1.21.0)
|  |  +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |  +- (com.google.api:api-common:jar:1.2.0:compile - omitted for duplicate)
|  |  +- com.google.api:gax:jar:1.15.0:compile
|  |  |  +- com.google.auto.value:auto-value:jar:1.2:compile
|  |  |  +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |  |  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  |  |  +- org.threeten:threetenbp:jar:1.3.3:compile
|  |  |  +- (com.google.auth:google-auth-library-oauth2-http:jar:0.9.0:compile - omitted for conflict with 0.8.0)
|  |  |  \- (com.google.api:api-common:jar:1.2.0:compile - omitted for duplicate)
|  |  +- com.google.protobuf:protobuf-java-util:jar:3.4.0:compile
|  |  |  +- (com.google.protobuf:protobuf-java:jar:3.4.0:compile - omitted for duplicate)
|  |  |  +- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  |  \- com.google.code.gson:gson:jar:2.7:compile
|  |  +- com.google.api.grpc:proto-google-common-protos:jar:1.0.2:compile
|  |  |  \- (com.google.protobuf:protobuf-java:jar:3.4.0:compile - omitted for duplicate)
|  |  \- com.google.api.grpc:proto-google-iam-v1:jar:0.1.26:compile
|  |     +- (com.google.protobuf:protobuf-java:jar:3.3.0:compile - omitted for conflict with 3.4.0)
|  |     +- (com.google.api.grpc:proto-google-common-protos:jar:1.0.2:compile - omitted for duplicate)
|  |     \- (com.google.api:api-common:jar:1.1.0:compile - omitted for conflict with 1.2.0)
|  +- com.google.cloud:google-cloud-core-grpc:jar:1.14.0:compile
|  |  +- (io.netty:netty-tcnative-boringssl-static:jar:2.0.6.Final:compile - omitted for duplicate)
|  |  +- com.google.auth:google-auth-library-credentials:jar:0.9.0:compile
|  |  +- (com.google.cloud:google-cloud-core:jar:1.14.0:compile - omitted for duplicate)
|  |  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  |  +- com.google.protobuf:protobuf-java:jar:3.4.0:compile
|  |  +- (com.google.protobuf:protobuf-java-util:jar:3.4.0:compile - omitted for duplicate)
|  |  +- io.grpc:grpc-protobuf:jar:1.7.0:compile
|  |  |  +- (io.grpc:grpc-core:jar:1.7.0:compile - omitted for duplicate)
|  |  |  +- (com.google.protobuf:protobuf-java:jar:3.4.0:compile - omitted for duplicate)
|  |  |  +- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  |  +- (com.google.protobuf:protobuf-java-util:jar:3.4.0:compile - omitted for duplicate)
|  |  |  +- (com.google.api.grpc:proto-google-common-protos:jar:0.1.9:compile - omitted for conflict with 1.0.2)
|  |  |  \- io.grpc:grpc-protobuf-lite:jar:1.7.0:compile
|  |  |     +- (io.grpc:grpc-core:jar:1.7.0:compile - omitted for duplicate)
|  |  |     \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  +- io.grpc:grpc-context:jar:1.7.0:compile
|  |  +- (io.grpc:grpc-netty:jar:1.7.0:compile - omitted for duplicate)
|  |  +- (io.grpc:grpc-stub:jar:1.7.0:compile - omitted for duplicate)
|  |  +- (io.grpc:grpc-auth:jar:1.7.0:compile - omitted for duplicate)
|  |  \- com.google.api:gax-grpc:jar:1.15.0:compile
|  |     +- (com.google.auto.value:auto-value:jar:1.2:compile - omitted for duplicate)
|  |     +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |     +- (com.google.api:gax:jar:1.15.0:compile - omitted for duplicate)
|  |     +- (io.grpc:grpc-netty:jar:1.7.0:compile - omitted for duplicate)
|  |     +- (io.grpc:grpc-stub:jar:1.7.0:compile - omitted for duplicate)
|  |     +- (io.grpc:grpc-auth:jar:1.7.0:compile - omitted for duplicate)
|  |     +- (io.grpc:grpc-protobuf:jar:1.7.0:compile - omitted for duplicate)
|  |     +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  |     +- (org.threeten:threetenbp:jar:1.3.3:compile - omitted for duplicate)
|  |     +- (com.google.auth:google-auth-library-oauth2-http:jar:0.9.0:compile - omitted for duplicate)
|  |     +- (com.google.auth:google-auth-library-credentials:jar:0.9.0:compile - omitted for duplicate)
|  |     +- (com.google.api.grpc:proto-google-common-protos:jar:1.0.0:compile - omitted for conflict with 1.0.2)
|  |     \- (com.google.api:api-common:jar:1.2.0:compile - omitted for duplicate)
|  +- com.google.api.grpc:proto-google-cloud-pubsub-v1:jar:0.1.26:compile
|  |  +- (com.google.api.grpc:proto-google-iam-v1:jar:0.1.26:compile - omitted for duplicate)
|  |  +- (com.google.api.grpc:proto-google-common-protos:jar:1.0.2:compile - omitted for duplicate)
|  |  +- (com.google.protobuf:protobuf-java:jar:3.4.0:compile - omitted for duplicate)
|  |  \- (com.google.api:api-common:jar:1.1.0:compile - omitted for conflict with 1.2.0)
|  +- com.google.api.grpc:grpc-google-cloud-pubsub-v1:jar:0.1.26:compile
|  |  +- (io.grpc:grpc-stub:jar:1.7.0:compile - omitted for duplicate)
|  |  +- (io.grpc:grpc-protobuf:jar:1.7.0:compile - omitted for duplicate)
|  |  \- (com.google.api.grpc:proto-google-cloud-pubsub-v1:jar:0.1.26:compile - omitted for duplicate)
|  +- io.grpc:grpc-netty:jar:1.7.0:compile
|  |  +- io.grpc:grpc-core:jar:1.7.0:compile
|  |  |  +- (io.grpc:grpc-context:jar:1.7.0:compile - omitted for duplicate)
|  |  |  +- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  |  +- com.google.errorprone:error_prone_annotations:jar:2.0.19:compile
|  |  |  +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |  |  +- com.google.instrumentation:instrumentation-api:jar:0.4.3:compile
|  |  |  |  +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |  |  |  \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  |  \- io.opencensus:opencensus-api:jar:0.6.0:compile
|  |  |     \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  |  +- io.netty:netty-codec-http2:jar:4.1.16.Final:compile
|  |  |  +- (io.netty:netty-codec-http:jar:4.1.16.Final:compile - omitted for conflict with 4.1.14.Final)
|  |  |  \- (io.netty:netty-handler:jar:4.1.16.Final:compile - omitted for conflict with 4.1.14.Final)
|  |  \- io.netty:netty-handler-proxy:jar:4.1.16.Final:compile
|  |     +- (io.netty:netty-transport:jar:4.1.16.Final:compile - omitted for conflict with 4.1.14.Final)
|  |     +- io.netty:netty-codec-socks:jar:4.1.16.Final:compile
|  |     |  \- (io.netty:netty-codec:jar:4.1.16.Final:compile - omitted for duplicate)
|  |     \- (io.netty:netty-codec-http:jar:4.1.16.Final:compile - omitted for duplicate)
|  +- io.grpc:grpc-stub:jar:1.7.0:compile
|  |  \- (io.grpc:grpc-core:jar:1.7.0:compile - omitted for duplicate)
|  \- io.grpc:grpc-auth:jar:1.7.0:compile
|     +- (io.grpc:grpc-core:jar:1.7.0:compile - omitted for duplicate)
|     \- (com.google.auth:google-auth-library-credentials:jar:0.4.0:compile - omitted for conflict with 0.9.0)
+- com.google.firebase:firebase-admin:jar:5.6.0:compile
|  +- com.google.api-client:google-api-client:jar:1.22.0:compile
|  |  +- com.google.oauth-client:google-oauth-client:jar:1.22.0:compile
|  |  |  +- (com.google.http-client:google-http-client:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  |  |  \- (com.google.code.findbugs:jsr305:jar:1.3.9:compile - omitted for duplicate)
|  |  \- (com.google.http-client:google-http-client-jackson2:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  +- com.google.api-client:google-api-client-gson:jar:1.22.0:compile
|  |  +- (com.google.api-client:google-api-client:jar:1.22.0:compile - omitted for duplicate)
|  |  \- com.google.http-client:google-http-client-gson:jar:1.22.0:compile
|  |     +- (com.google.http-client:google-http-client:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  |     \- (com.google.code.gson:gson:jar:2.1:compile - omitted for conflict with 2.7)
|  +- (com.google.http-client:google-http-client:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  +- com.google.api:api-common:jar:1.2.0:compile
|  |  +- (com.google.code.findbugs:jsr305:jar:3.0.0:compile - omitted for conflict with 1.3.9)
|  |  \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  +- com.google.auth:google-auth-library-oauth2-http:jar:0.8.0:compile
|  |  +- (com.google.auth:google-auth-library-credentials:jar:0.8.0:compile - omitted for conflict with 0.9.0)
|  |  +- (com.google.http-client:google-http-client:jar:1.19.0:compile - omitted for conflict with 1.21.0)
|  |  +- (com.google.http-client:google-http-client-jackson2:jar:1.19.0:compile - omitted for conflict with 1.22.0)
|  |  \- (com.google.guava:guava:jar:19.0:compile - omitted for conflict with 20.0)
|  +- com.google.cloud:google-cloud-storage:jar:1.7.0:compile
|  |  +- (com.google.cloud:google-cloud-core:jar:1.7.0:compile - omitted for conflict with 1.14.0)
|  |  +- com.google.cloud:google-cloud-core-http:jar:1.7.0:compile
|  |  |  +- (com.google.cloud:google-cloud-core:jar:1.7.0:compile - omitted for conflict with 1.14.0)
|  |  |  +- (com.google.auth:google-auth-library-credentials:jar:0.8.0:compile - omitted for conflict with 0.9.0)
|  |  |  +- (com.google.auth:google-auth-library-oauth2-http:jar:0.8.0:compile - omitted for duplicate)
|  |  |  +- (com.google.http-client:google-http-client:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  |  |  +- (com.google.oauth-client:google-oauth-client:jar:1.22.0:compile - omitted for duplicate)
|  |  |  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  |  |  +- (com.google.api-client:google-api-client:jar:1.22.0:compile - omitted for duplicate)
|  |  |  +- (com.google.http-client:google-http-client-appengine:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  |  |  +- com.google.http-client:google-http-client-jackson:jar:1.22.0:compile
|  |  |  |  +- (com.google.http-client:google-http-client:jar:1.22.0:compile - omitted for conflict with 1.21.0)
|  |  |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.11:compile
|  |  |  \- (com.google.http-client:google-http-client-jackson2:jar:1.22.0:compile - omitted for duplicate)
|  |  \- com.google.apis:google-api-services-storage:jar:v1-rev108-1.22.0:compile
|  +- com.google.cloud:google-cloud-firestore:jar:0.25.0-beta:compile
|  |  +- (io.netty:netty-tcnative-boringssl-static:jar:2.0.3.Final:compile - omitted for conflict with 2.0.6.Final)
|  |  +- (com.google.cloud:google-cloud-core:jar:1.7.0:compile - omitted for conflict with 1.14.0)
|  |  +- (com.google.cloud:google-cloud-core-grpc:jar:1.7.0:compile - omitted for conflict with 1.14.0)
|  |  +- (com.google.api:gax-grpc:jar:0.25.1:compile - omitted for conflict with 1.15.0)
|  |  +- (com.google.api:api-common:jar:1.1.0:compile - omitted for conflict with 1.2.0)
|  |  +- (com.google.cloud:google-cloud-core-http:jar:1.7.0:compile - omitted for duplicate)
|  |  +- com.google.api.grpc:proto-google-cloud-firestore-v1beta1:jar:0.1.20:compile
|  |  |  +- (com.google.api:api-common:jar:1.1.0:compile - omitted for conflict with 1.2.0)
|  |  |  +- (com.google.protobuf:protobuf-java:jar:3.3.0:compile - omitted for conflict with 3.4.0)
|  |  |  \- (com.google.api.grpc:proto-google-common-protos:jar:0.1.20:compile - omitted for conflict with 1.0.2)
|  |  +- (io.grpc:grpc-netty:jar:1.6.1:compile - omitted for conflict with 1.7.0)
|  |  +- (io.grpc:grpc-stub:jar:1.6.1:compile - omitted for conflict with 1.7.0)
|  |  \- (io.grpc:grpc-auth:jar:1.6.1:compile - omitted for conflict with 1.7.0)
|  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  +- org.json:json:jar:20160810:compile
|  +- (org.slf4j:slf4j-api:jar:1.7.25:compile - omitted for conflict with 1.6.4)
|  +- io.netty:netty-codec-http:jar:4.1.14.Final:compile
|  |  \- io.netty:netty-codec:jar:4.1.14.Final:compile
|  |     \- (io.netty:netty-transport:jar:4.1.14.Final:compile - omitted for conflict with 4.1.16.Final)
|  +- io.netty:netty-handler:jar:4.1.14.Final:compile
|  |  +- io.netty:netty-buffer:jar:4.1.14.Final:compile
|  |  |  \- io.netty:netty-common:jar:4.1.14.Final:compile
|  |  +- (io.netty:netty-transport:jar:4.1.14.Final:compile - omitted for duplicate)
|  |  \- (io.netty:netty-codec:jar:4.1.14.Final:compile - omitted for duplicate)
|  \- io.netty:netty-transport:jar:4.1.14.Final:compile
|     +- (io.netty:netty-buffer:jar:4.1.14.Final:compile - omitted for duplicate)
|     \- io.netty:netty-resolver:jar:4.1.14.Final:compile
|        \- (io.netty:netty-common:jar:4.1.14.Final:compile - omitted for duplicate)
+- com.googlecode.libphonenumber:libphonenumber:jar:8.5.0:compile
+- com.atlassian.commonmark:commonmark:jar:0.10.0:compile
+- com.example.gaeobjectify:gaeobjectify-utils:jar:2.0.0-SNAPSHOT:compile
|  +- (com.google.appengine:appengine-api-1.0-sdk:jar:1.9.49:compile - omitted for conflict with 1.9.59)
|  +- (com.googlecode.objectify:objectify:jar:5.1.9:compile - omitted for duplicate)
|  +- (org.apache.commons:commons-lang3:jar:3.4:compile - omitted for duplicate)
|  +- (commons-io:commons-io:jar:2.4:compile - omitted for duplicate)
|  +- (org.glassfish.jersey.core:jersey-server:jar:2.5.1:compile - omitted for conflict with 2.9)
|  +- (com.google.guava:guava:jar:20.0:compile - omitted for duplicate)
|  +- org.freemarker:freemarker-gae:jar:2.3.25-incubating:compile
|  +- com.google.appengine:appengine-api-labs:jar:1.9.49:compile
|  +- (com.fasterxml.jackson.core:jackson-databind:jar:2.6.1:compile - omitted for conflict with 2.9.4)
|  +- (com.google.http-client:google-http-client-appengine:jar:1.21.0:compile - omitted for duplicate)
|  +- com.google.http-client:google-http-client-jackson2:jar:1.21.0:compile
|  |  +- (com.google.http-client:google-http-client:jar:1.21.0:compile - omitted for duplicate)
|  |  \- (com.fasterxml.jackson.core:jackson-core:jar:2.1.3:compile - omitted for conflict with 2.9.4)
|  +- org.joda:joda-money:jar:0.10.0:compile
|  +- com.google.code.findbugs:jsr305:jar:3.0.1:compile
|  +- (commons-validator:commons-validator:jar:1.5.0:compile - omitted for duplicate)
|  +- (org.apache.shiro:shiro-core:jar:1.2.4:compile - omitted for duplicate)
|  +- (org.mindrot:jbcrypt:jar:0.3m:compile - omitted for duplicate)
|  \- (org.jsoup:jsoup:jar:1.8.3:compile - omitted for duplicate)
+- junit:junit:jar:4.12:test
|  \- org.hamcrest:hamcrest-core:jar:1.3:test
+- com.google.appengine:appengine-testing:jar:1.9.59:test
\- com.google.appengine:appengine-api-stubs:jar:1.9.59:test

【问题讨论】:

您在 GAE 上使用的是哪个版本的 Java? 7 还是 8? 我使用的是 Java 8 运行时,尽管代码库主要是旧版 Java 7。 @EricAnderson 这个特殊的代码虽然是 Java 8(因为它是全新的),如果这很重要的话。 是的,这很重要。 Java 8 运行时应使用 Netty,而 Java 7 运行时应使用 OkHttp。 【参考方案1】:

您的 netty-handler 版本是 4.1.14:io.netty:netty-handler:jar:4.1.14.Final:compile。对所有 io.netty 工件使用 4.1.16。

【讨论】:

以上是关于Jetty ALPN/NPN 未正确配置的主要内容,如果未能解决你的问题,请参考以下文章

google Cloud spanner java.lang.IllegalArgumentException:Jetty ALPN/NPN 未正确配置

谷歌扳手| java.lang.IllegalArgumentException:尚未正确配置Jetty ALPN / NPN

从 Spark 连接到 BigTable 时出现 Jetty ALPN/NPN 异常,scala 代码

HTTPS那些协议:TLS, SSL, SNI, ALPN, NPN

嵌入式 Jetty 中的 Web 应用程序出现错误 404 未找到

Maven 的 jetty 插件 SSL 配置问题