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 中启动它时,它才会面临同样的问题。
这是一个解决方法:对所有版本使用 1.28.1grpc组件使用版本 1.28.1。
虽然当前还有其他版本可用(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 在我的本地测试中。
| 归档时间: |
|
| 查看次数: |
3064 次 |
| 最近记录: |