googleapis / googleapis/google-cloud-java

[java-bigtable] BigTable API - Error connecting to BigTable Emulator

未关闭
#13,078 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
api: bigtable
主要语言
Java
星标
2.1k
派生
1.2k
平均合并
1 天 23 小时
30 天内合并 PR
157

描述

Can you please help me identify why BigTable API fails to connect with BigTable emulator running on Docker?

#### Environment details

1. Specify the API at the beginning of the title - **BigTable**
2. OS type and version: Mac
3. Java version: 17
4. bigtable version(s): Docker BigTable

#### Steps to reproduce

1. Start gcloud BigTable emulator in local Docker.
2. Run the basic Read example - https://github.com/googleapis/java-bigtable/blob/main/samples/snippets/src/main/java/com/example/bigtable/Reads.java

#### Code example

```pom.xml



com.google.cloud
libraries-bom
26.37.0
pom
import

......


.....

com.google.cloud
google-cloud-bigtable

```
```java
try (BigtableTableAdminClient adminClient =
BigtableTableAdminClient.create(projectId, instanceId)) {
CreateTableRequest createTableRequest =
CreateTableRequest.of(tableId)
.addFamily(COLUMN_FAMILY_NAME_STATS)
.addFamily(COLUMN_FAMILY_NAME_PLAN);
adminClient.createTable(createTableRequest);
} catch (IOException e) {
System.out.println("Error during createTable: \n" + e.toString());
throw (e);
}
```

#### Stack trace
```
INFO: Connecting to the Bigtable emulator at localhost:8086
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Verify
at com.google.cloud.bigtable.admin.v2.BigtableTableAdminSettings.(BigtableTableAdminSettings.java:66)
at com.google.cloud.bigtable.admin.v2.BigtableTableAdminSettings.(BigtableTableAdminSettings.java:53)
at com.google.cloud.bigtable.admin.v2.BigtableTableAdminSettings$Builder.build(BigtableTableAdminSettings.java:265)
at com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient.create(BigtableTableAdminClient.java:151)
at com.thinknear.venice.dao.gcp.BigTableClientTest.createTable(BigTableClientTest.java:63)
at com.thinknear.venice.dao.gcp.BigTableClientTest.main(BigTableClientTest.java:39)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Verify
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 6 more
```

#### External references such as API reference guides

- https://cloud.google.com/bigtable/docs/emulator#client-libraries
- https://cloud.google.com/bigtable/docs/samples-java-hello-world
- https://cloud.google.com/bigtable/docs/samples-java-hello-world#reading-single-row

贡献指南

打开贡献指南

调研方向

Inspect pom.xml and the sample entry point at samples/snippets/src/main/java/com/example/bigtable/Reads.java, then run the example against the Docker Bigtable emulator. Start with the BigtableTableAdminSettings stack-trace entry and verify the dependency setup. Done means the sample connects and reaches table creation without the reported NoClassDefFoundError.

由索引模型根据 Issue 内容生成。

评估

技术栈
docker, google-cloud, java
领域
databases
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。