Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 初始化本地数据存储异常:没有为此线程注册API环境_Java_Google App Engine_Gwt_Google Cloud Datastore - Fatal编程技术网

Java 初始化本地数据存储异常:没有为此线程注册API环境

Java 初始化本地数据存储异常:没有为此线程注册API环境,java,google-app-engine,gwt,google-cloud-datastore,Java,Google App Engine,Gwt,Google Cloud Datastore,我想使用 常规Java程序(我不想启动开发服务器 并调用服务/servlet),我得到以下异常 例外情况: } 问候…..impl.java } 有办法做到这一点吗?如何操作?谷歌提供了一个助手类,它可以完全满足您的需要——运行足够的代码来处理数据库,而无需启动整个开发服务器。请参见上的设置和拆卸方法,只需将这3个库(测试库的附件)添加到类路径中即可: private final LocalServiceTestHelper helper = new LocalServiceTest

我想使用 常规Java程序(我不想启动开发服务器 并调用服务/servlet),我得到以下异常

例外情况:


}

问候…..impl.java


}


有办法做到这一点吗?如何操作?

谷歌提供了一个助手类,它可以完全满足您的需要——运行足够的代码来处理数据库,而无需启动整个开发服务器。请参见

上的
设置
拆卸
方法,只需将这3个库(测试库的附件)添加到类路径中即可:

private final LocalServiceTestHelper helper =
  new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

@Before
public void setUp() {
   helper.setUp();
}

@After
public void tearDown() {
   helper.tearDown();
}

这应该可以解决问题。

您必须为当前线程设置测试数据存储服务。基本上你可以这样做:

这将仅为此方法初始化数据库服务(一个假的,仅用于测试)

或者你可以做得更好:

所以数据库服务将在所有测试方法中工作

请注意,如果您使用不同的线程访问数据库,那么您将为每个线程获得一个单独的数据库。这可能不是你最想要的。我的意思是
helper.setUp()
为当前线程设置一个新的独立数据库服务,并且存储在此数据库中的所有数据将只能从当前线程访问


有关更多详细信息,请参阅:

我在运行TimerTask any ideas时遇到相同错误。请注意,我没有使用GAEwell的cron配置。。我不确定这是否有用。我已经在这上面停留了一段时间,helper类似乎创建了一个假的/新的数据库。因此,我无法找到读取本地数据库中已有数据的方法。我可以通过本地访问数据存储吗 public class TestCase { static GreetingServiceImpl greetingServiceImpl = new GreetingServiceImpl();

public static void main(String[] args) {
    testServerCallBack();//line9
}

private static void testServerCallBack() {
    Contacts contacts = new Contacts("this is", "awesome");
    greetingServiceImpl.saveContact(contacts);//line:14
}
public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService {

public String greetServer(String input) throws IllegalArgumentException {
    return "";
}

@Override
public void saveContact(Contacts contacts) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    pm.makePersistent(contacts); //line:20
    pm.close();
}
${SDK_ROOT}/lib/impl/appengine-api.jar
${SDK_ROOT}/lib/impl/appengine-api-labs.jar
${SDK_ROOT}/lib/impl/appengine-api-stubs.jar
private static void testServerCallBack() {
    LocalServiceTestHelper helper =
        new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
    helper.setUp();
    Contacts contacts = new Contacts("this is", "awesome");
    greetingServiceImpl.saveContact(contacts);//line:14
}
private final LocalServiceTestHelper helper =
  new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

@Before
public void setUp() {
   helper.setUp();
}

@After
public void tearDown() {
   helper.tearDown();
}