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 Can';无法从数据存储中读取_Java_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Java Can';无法从数据存储中读取

Java Can';无法从数据存储中读取,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,创建实体并设置属性 package pack.exp; import java.io.IOException; import javax.servlet.http.*; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datas

创建实体并设置属性

package pack.exp;
import java.io.IOException;
import javax.servlet.http.*;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;

@SuppressWarnings("serial")
public class IkaiLanServlet extends HttpServlet 
{
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws...
{
    Entity alice = new Entity("Person", "Alice");
    alice.setProperty("gender", "female");
    alice.setProperty("age", 20);

    Key bobKey = KeyFactory.createKey("Person", "Bob");
    Entity bob = new Entity(bobKey);
    bob.setProperty("gender", "male");
    bob.setProperty("age", "23");

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    datastore.put(alice);
    datastore.put(bob);


    resp.setContentType("text/plain");
    resp.getWriter().println("Bye Bye");
}
}
在同一个包中创建另一个servlet

package pack.exp;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.EntityNotFoundException;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;

public class Read extends HttpServlet
{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws... 
{
    // TODO Auto-generated method stub
    super.doGet(req, resp);

    Key bobKey = KeyFactory.createKey("Person", "Bob");
    Key aliceKey = KeyFactory.createKey("Person", "Alice");

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Entity alice, bob;

    try {
        alice = datastore.get(aliceKey);
        bob = datastore.get(bobKey);

        Long aliceAge = (Long) alice.getProperty("age");
        Long bobAge = (Long) bob.getProperty("age");
        System.out.println("Alice’s age: " + aliceAge);
        System.out.println("Bob’s age: " + bobAge);
    } 

    catch (EntityNotFoundException e) 
    {
        // Alice or Bob doesn't exist!
    }
}
}
当我部署应用程序时,输出为“再见”。为什么它不读取实体。
请帮助我,我是google app engine数据存储的新手。

当您转到映射到
IkaiLanServlet
的任何URL时,它将以“再见”回应,因为您调用了
resp.getWriter().println(“再见”)
。要读取实体,请更改

System.out.println("Alice’s age: " + aliceAge);
System.out.println("Bob’s age: " + bobAge);

根据文件():

servlet写入标准输出流(System.out)和标准错误流(System.err)的所有内容都由应用程序引擎捕获并记录在应用程序日志中。写入标准输出流的行以“信息”级别记录,写入标准错误流的行以“警告”级别记录

要在浏览器中查看输出,必须使用
resp


另外,请确保您访问
IkaiLanServlet
的URL,然后按顺序读取
以确保实体位于数据存储中。

Remco您能帮我吗。
resp.setContentType("text/plain");
resp.getWriter().println("Alice’s age: " + aliceAge);
resp.getWriter().println("Bob’s age: " + bobAge);