本地运行的GAE多模块多语言应用程序
我有一个多模块的GAE应用,结构如下:
- 一个Python27模块,这是一个普通的网页应用。这个Python应用使用了Datastore API,就是一个常规的、没什么特别的网页应用。
- 一个Java模块(另一个网页应用),它会连接到Datastore的调用(由Python网页应用发出的调用),并显示关于这些调用的汇总数据。
我已经成功地把这个应用部署到GAE云上,一切运行得很好。
不过,当我想在本地运行这个应用时,就出现了一些问题。
Python模块必须通过Python SDK启动,而Java模块则需要通过Java SDK启动。但是,这两个SDK似乎不共享同一个datastore(我觉得这两个SDK在磁盘上写入/读取的是不同的文件)。
我还发现这两个SDK在开发控制台的实现上也有所不同。Python SDK的开发控制台看起来更干净、更现代(类似于新的console.developers.google.com控制台),而Java SDK则是旧版的开发控制台(类似于旧的appspot.com控制台)。
所以我想问,有没有办法同时启动两个以上的模块(不同语言:Python和Java),并让它们共享同样的Datastore文件?这样就太好了,因为这将允许Java模块连接到Python的Datastore调用,而目前似乎是做不到的。
1 个回答
你可以尝试使用“appscale”,这是一个开源项目,如果你设置了Virtual Box并在上面加载了镜像,它可能会对你有帮助。你可以去看看community.appscale.com。
还有另一种方法(不过这有点复杂),步骤如下:
1- 把你的Python项目单独部署在localhost:9000上。
2- 把你的Java项目单独部署在localhost:8000上。
3- 修改你的Python和Java代码,让它们在开发环境下能正确连接到对应的localhost(Java连接localhost:9000,Python连接localhost:8000)。
4- 尝试像@tx802建议的那样,指定一个local_db的路径。
我不确定这两种方法是否有效,但我觉得至少可以试试看。