我跟着this tutorial 在Google托管虚拟机中启动并运行Bigtable客户端。但有没有办法在本地运行?原因是在开发过程中远程部署代码是一件痛苦的事。
通常我可以使用dev_appserver.sh
在本地运行GAE应用。但是当我运行它时,我收到了这个错误:
引起:java.lang.IllegalStateException:Jetty ALPN还没有 正确配置。
这意味着我们需要包含ALPN库吗?由于我们的代码库是在Java 7中,因此我使用了这个ALPN版本:7.1.3.v20150130
。
然后我再次尝试了这个:
dev_appserver.sh --jvm_flag=-Xbootclasspath/p:/Users/shouguoli/tmp/alpn-boot-7.1.3.v20150130.jar
仍然出现此错误:
引起:com.google.apphosting.api.ApiProxy $ CallNotFoundException: 找不到API包'urlfetch'或调用'Fetch()'。
如何让它在本地工作?
答案 0 :(得分:1)
sample上周更新了。它基于java 8 compat运行时,这意味着您可以访问大多数App Engine API,包括用户,任务队列和数据存储。
有一个新的Netty TCNative模块使用Boring SSL。
要将其与样本中的pom.xml
一起使用,请执行以下操作:
mvn clean -Pmac jetty:run -Dbigtable.projectID=<your-project> -Dbigtable.clusterID=<your-cluster> -Dbigtable.zone=<your-zone>
要在Windows上使用,请使用-Pwindows
代替-Pmac
。对于linux,省略配置文件-P
,因为它是默认配置。
部署:
mvn clean gcloud:deploy -Dbigtable.projectID=<your-project> -Dbigtable.clusterID=<your-cluster> -Dbigtable.zone=<your-zone>
注意 - 建议在本地运行和远程运行之间进行清理,因为TCNative模块当前特定于运行代码的平台。
我们正在更新所有样本以使用TCNative,我们希望在2016年10月3日之前完成。