Hadoop google云扳手java.lang.IllegalArgumentException:Jetty ALPN/NPN未正确配置
我是谷歌云扳手的新手,为了探索它,我从谷歌提供的文档开始。为了探索任何数据库,我们从数据操作开始,就像我做的一样,我从使用这里给出的简单java应用程序将数据写入扳手开始Hadoop google云扳手java.lang.IllegalArgumentException:Jetty ALPN/NPN未正确配置,hadoop,apache-spark,jetty,google-cloud-platform,google-cloud-spanner,Hadoop,Apache Spark,Jetty,Google Cloud Platform,Google Cloud Spanner,我是谷歌云扳手的新手,为了探索它,我从谷歌提供的文档开始。为了探索任何数据库,我们从数据操作开始,就像我做的一样,我从使用这里给出的简单java应用程序将数据写入扳手开始我在驱动程序类中的相应位置进行了更改,如以下代码段所示: public static void main(String[] args) throws Exception { String path = "File_Path"; SpannerOptions.Builder op
我在驱动程序类中的相应位置进行了更改,如以下代码段所示:
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)
但面对同样的问题,我也在使用Bigquery和其他GCP的功能—一个相同的工作环境,除了谷歌扳手,它们都工作得很好,对此的任何建议都将不胜感激
谢谢。请阅读关于这个问题的评论,@Mairbek Khadikov和我关于这个问题的讨论总结了问题的实际原因。正如在评论中所讨论的,实际问题在于另一个依赖项。 加入
configurations {
compile.exclude module: 'netty-all'
}
到build.gradle文件,此问题已解决
下面是我提出的关于这个错误的github问题的链接。我最终在哪里发布了我知道的确切问题,以及由“@michaelbausor”解决的问题。类路径中可能存在冲突的库,您能否列出您正在使用的GCP库的版本,以便我们可以尝试复制?同时,您可能希望将库更新到最新版本。编译组:'com.google.cloud',名称:'google cloud span',版本:'0.17.1-beta'这是我添加的gradle依赖项。现在我使用最新的扳手API和云API作为编译组:'com.google.cloud',名称:'google cloud span',版本:'0.20.0-beta'和编译组:'com.google.cloud',名称:'googlecloud',版本:'0.20.0-alpha'仍然错误相同。您是否可以尝试检查类路径中是否存在冲突的库?因此,这似乎是tcnative库的未解决依赖项,请参阅。两种可能的选择1。另一版本的
tcnative
正在被Tomcat
或另一版本的Netty
引入,并且gRPC
与该版本的tcnative
不兼容;2.tcnative
不支持该平台(例如,不支持ARM处理器)。以下是gRPC的安装文档:
configurations {
compile.exclude module: 'netty-all'
}