在本地运行bookshelf示例应用程序时,数据存储权限被拒绝

时间:2017-06-14 15:36:00

标签: maven google-app-engine google-cloud-datastore

尝试运行Google CloudPlatform提供的示例书架应用时,我收到PERMISSION_DENIED错误。

https://cloud.google.com/java/getting-started/using-forms上,它说要运行以下命令:

mvn -Plocal clean jetty:run-explosion -DprojectID = [YOUR-PROJECT-ID]

我得到的错误是:

[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@25e203e6{/,file:///Users/markfriesen/Documents/workspace/getting-started-java/bookshelf/2-structured-data/target/bookshelf-2-1.0-SNAPSHOT/,UNAVAILABLE}{/Users/markfriesen/Documents/workspace/getting-started-java/bookshelf/2-structured-data/target/bookshelf-2-1.0-SNAPSHOT}
com.google.cloud.datastore.DatastoreException: Missing or insufficient permissions.
    at com.google.cloud.datastore.spi.v1.HttpDatastoreRpc.translate(HttpDatastoreRpc.java:128)
...
Caused by: com.google.datastore.v1.client.DatastoreException: Missing or insufficient permissions., code=PERMISSION_DENIED
    at com.google.datastore.v1.client.RemoteRpc.makeException(RemoteRpc.java:126)
    at com.google.datastore.v1.client.RemoteRpc.makeException(RemoteRpc.java:169)

I am able to launch the datastore emulator using the command: 
   gcloud beta emulators datastore start --project=[YOUR-PROJECT-ID]

我正在跑步:   macOS Sierra   Java版本:1.8.0_112

有人有想法吗?

由于

2 个答案:

答案 0 :(得分:0)

从错误消息中可以看出,代码实际上是连接到真正的GCD而不是仿真器,并且您没有为项目启用数据存储区API。我建议登录GCD并启用Datastore API并重试。

答案 1 :(得分:0)

我在 docker 上下文中遇到了这个问题:

  • 我在 docker-compose 网络中的 docker 容器中运行数据存储模拟器
  • 我试图从我的本地机器连接到它。

当我从另一个连接到数据存储网络的容器运行命令/脚本时,它工作正常。我想这是本地主机异常或类似的东西。