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

时间:2017-06-14 13:48:54

标签: hadoop apache-spark jetty google-cloud-platform google-cloud-spanner

我是Google云计算器的新用户,为了探索它,我开始使用Google Here提供的文档。为了探索我们从数据操作开始的任何数据库和我所做的一样,我开始使用这里给出的简单的Java应用程序https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java将数据写入扳手。
我在下面的代码片段中显示了各个地方的驱动程序类:

 public static void main(String[] args) throws Exception {
            String path = "File_Path";

            SpannerOptions.Builder options = SpannerOptions.newBuilder().setCredentials(GoogleCredentials.fromStream(new FileInputStream(path)));
            options.setProjectId("Project_id");
            Spanner spanner = (options.build()).getService();
            try {
                DatabaseId db = DatabaseId.of("project_id", "spannerInstance", "Database_name");
                DatabaseClient dbClient = spanner.getDatabaseClient(db);
                run(dbClient);
            } finally {
                spanner.closeAsync().get();
            }
            System.out.println("Closed client");
        }

现在,当我尝试执行代码时,我最终会遇到以下错误:

Exception in thread "main" 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 com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newSslContext(SpannerOptions.java:283)
    at com.google.cloud.spanner.SpannerOptions$NettyRpcChannelFactory.newChannel(SpannerOptions.java:274)
    at com.google.cloud.spanner.SpannerOptions.createChannel(SpannerOptions.java:253)
    at com.google.cloud.spanner.SpannerOptions.createChannels(SpannerOptions.java:240)
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:89)
    at com.google.cloud.spanner.SpannerOptions.<init>(SpannerOptions.java:43)
    at com.google.cloud.spanner.SpannerOptions$Builder.build(SpannerOptions.java:180)

在搜索此问题时,我建议添加一些依赖项,例如:

   compile group: 'org.eclipse.jetty.alpn', name: 'alpn-api', version: '1.1.3.v20160715'
   compile group: 'org.mortbay.jetty.alpn', name: 'jetty-alpn-agent', version: '2.0.6'
   compile group: 'io.grpc', name: 'grpc-all', version: '1.2.0'
   compile group: 'io.netty', name: 'netty-all', version: '4.0.29.Final'
   compile group: 'org.eclipse.jetty.orbit', name: 'javax.servlet', version: '3.0.0.v201112011016'

但面临同样的问题,我也在使用Bigquery和其他GCP的功能相同的工作环境,除了 google-Spanner 之外,它们都运行良好,对此有任何建议表示赞赏。
感谢。

1 个答案:

答案 0 :(得分:2)

请阅读有关该问题的评论,@ Michek Khadikov以及我对此的讨论总结了该问题的实际原因。正如评论中所讨论的,实际问题是另一个依赖。 添加

configurations {
    compile.exclude module: 'netty-all'
}

到build.gradle文件,此问题已解决。

以下是我针对此错误提出的github问题的链接。 github issue我最后发布了一些确切的问题,我已经知道并解决了这个问题,&#39; @ michaelbausor&#39;。

相关问题