ClassNotFoundException:尝试从 Windows 创建 BigtableDataClient 时出现 io.grpc.internal.BaseDnsNameResolverProvider

rio*_*rio 5 java intellij-idea spring-boot google-cloud-bigtable

在 Intellij 上启动 Spring 启动应用程序,尝试连接 GCP 的 BigTable 时,我们收到以下错误: java.lang.NoClassDefFoundError: io/grpc/internal/BaseDnsNameResolverProvider

这是堆栈跟踪:

...嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [com.google.cloud.bigtable.data.v2.BigtableDataClient]:工厂方法“bigtableDataClient”抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: io/grpc/internal/BaseDnsNameResolverProvider
        在 org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:797) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        在 org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:227) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
        在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
           ....

Gradle 中的导入是:

implementation 'com.google.cloud:google-cloud-bigtable:1.13.0'

更新:

我尝试专门使用不同的grpc-alt版本:

compile group: 'io.grpc', name: 'grpc-alts', version: '1.29.0' 但它没有帮助。

如果我尝试从它的 Gradle 命令运行该应用程序,bootRun它会毫无问题地启动。只有当尝试在 Intellij 中启动它时,它才会面临同样的问题。

kaa*_*aan 0

这是一个解决方法:对所有版本使用 1.28.1grpc组件使用版本 1.28.1。

\n

虽然当前还有其他版本可用(1.29.0、1.30.0、1.30.1、1.30.2,每个https://mvnrepository.com/artifact/io.grpc),但它们表现出相同的错误 \xe2\x80\x93java.lang.NoClassDefFoundError: io/grpc/internal/BaseDnsNameResolverProvider \xe2\x80\x93 在我的本地测试中。

\n