Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将HTTPServletRequest流写入Google App Engine的数据存储_Java_Google App Engine_Servlets_Google Cloud Datastore - Fatal编程技术网

Java 将HTTPServletRequest流写入Google App Engine的数据存储

Java 将HTTPServletRequest流写入Google App Engine的数据存储,java,google-app-engine,servlets,google-cloud-datastore,Java,Google App Engine,Servlets,Google Cloud Datastore,我对AppEngine和Java开发非常陌生,我尝试通过HTTPPOST接收InputStream并将其存储到数据存储中 为了测试这一点,我使用另一台计算机的正常运行时间,并在一个流中发送10个正常运行时间值 每当我测试这一点时,机器就会变成一个计数高达10且正常运行时间值的响应。但是数据存储查看器只存储了一项。我做错了什么?我不认为这是太多的数据使用Memcache尚未,虽然这是更好的方式,我会做它以后 public void doPost(HttpServletRequest req, Ht

我对AppEngine和Java开发非常陌生,我尝试通过HTTPPOST接收InputStream并将其存储到数据存储中

为了测试这一点,我使用另一台计算机的正常运行时间,并在一个流中发送10个正常运行时间值

每当我测试这一点时,机器就会变成一个计数高达10且正常运行时间值的响应。但是数据存储查看器只存储了一项。我做错了什么?我不认为这是太多的数据使用Memcache尚未,虽然这是更好的方式,我会做它以后

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Entity uptime = new Entity("Uptime");

    BufferedReader buff = req.getReader();
    String line = buff.readLine();

    PrintWriter out = resp.getWriter();     

    int n = 0;
    Date timestamp = new Date();

    while (line != null){
        uptime.setProperty("timestamp", timestamp);
        uptime.setProperty("value",  line);
        datastore.put(uptime);
        //Ouput for Debug purpose
        out.println("COUNT: " + n + " LINE: " + line);
        n++;

        line = buff.readLine();
    }
}

循环时,您没有创建新的
实体
对象,只是更改了现有实体的属性

while (line != null){
    Entity uptime = new Entity("Uptime"); // remove the declaration/initialization from before, create a new every loop
    uptime.setProperty("timestamp", timestamp);
    uptime.setProperty("value",  line);
    datastore.put(uptime);
    //Ouput for Debug purpose
    out.println("COUNT: " + n + " LINE: " + line);
    n++;

    line = buff.readLine();
}

我不确定您的数据存储如何识别对象(它只是一个映射,对象id是什么,它的
equals()
方法做什么?),但它应该以这种方式区分对象。

哦,我的上帝。这么简单,我一整天都看不见。谢谢。我一定会反复阅读数据存储文档。