0

我有一个在 Java 中使用云端点的 gae 项目,这是一个非常简单的 CRUD 应用程序。

我有一些更改数据存储实体的 PUT 请求和检索它们的 GET 请求。我发现 GET 请求总是不返回实体的最新值。这发生在几个 GET 请求中。当我在数据存储查看器中检查保存的值时,我可以确认新值已正确保存。

我用 Google API explorer 和另一个 REST 客户端(在 chrome 网上商店中称为 Postman)尝试了这个。

模式似乎是这样的 -
1)发送 PUT 请求以更改实体
2)发送 GET 请求以检索实体。有时我看到旧价值,有时我看到新价值。我可以确认从数据存储查看器中保存了最新数据。这发生在多个 GET 请求中。

这似乎是非常基本的功能,可能是我做错了什么。这就是我的 api 注释的样子——

@Api (name = "content", 
scopes = { "https://www.googleapis.com/auth/userinfo.email" }
)
public class ContentAPI extends APIBase {

  @ApiMethod(path="setcontent", httpMethod = HttpMethod.PUT)
  public APIResponse setContent(@Named("content_html") String html, 
        @Named("tag") String tag, @Named("publish") boolean publish, User   user) {
     ...
    //save content in the datastore
  }

  @ApiMethod(path="getcontent", httpMethod = HttpMethod.GET)
  public APIResponse getContent(@Named("tag") String tag, 
      User user) {
      ...
      //retrieve the saved content and send it back.
  }


有没有人遇到过这样的问题?任何帮助,将不胜感激。

[编辑] - 这看起来像是数据存储问题,而不是云端点问题。我已经打开了另一个问题 [here] ( Unable to get saved entity using objectify )

问候,
沙迪亚

4

1 回答 1

0

事实证明,这不是云端点的问题。

我使用 objectify 作为我的数据访问 API,我忘记在 web.xml 中添加 objectify 过滤器,如Objectify wiki 页面中所述

我在 web.xml 中添加了以下内容,问题就解决了。

<filter>
    <filter-name>ObjectifyFilter</filter-name>
    <filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>ObjectifyFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
于 2013-06-12T02:35:02.593 回答