编程语言
首页 > 编程语言> > java – 为什么我在GAE中遇到此异常

java – 为什么我在GAE中遇到此异常

作者:互联网

我刚刚测试并将我的应用程序重新部署到测试实例,它工作正常,然后我更改了应用程序ID并重新部署到我的生产实例,我得到了一个索引问题.我将来如何避免这种情况?我去努力测试它,它工作正常!

Uncaught exception from servlet
com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found..      <datastore-index kind="Article" ancestor="false" source="manual">
    <property name="tags" direction="asc"/>
    <property name="created" direction="asc"/>
</datastore-index>
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:40)
at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java:67)

管理控制台说它正在“构建”索引.它说现在20分钟!多久时间!?

解决方法:

当您创建新查询并在本地计算机上首次使用它们时,它们始终是第一次工作.当您第一次在谷歌应用引擎上运行这些新查询时,他们将返回此异常,因为谷歌应用引擎服务器需要一些时间来生成“索引”以允许您的查询正常工作.

我建议您在创建新查询时,在生产环境中为它们提供一次性运行以构建“索引”,这样当用户点击它们时,它们就会第一次运行.

其次,在您需要之前手动预先定义查询并将其上传到服务器,意味着当您真正需要它们时,它们可能已经在服务器上构建.

标签:java,google-app-engine,jdo
来源: https://codeday.me/bug/20190712/1442795.html