Initialize local datastore exception : No API environment is registered for this thread

I would like to initialize my local data store with some data using a regular Java program (I do not want to start the Development Server и вызвать службу / сервлет), и я получаю следующее исключение

EXCEPTION:

 Исключение в потоке "main" java.lang.NullPointerException: для этого потока не зарегистрировано среды API.
 в com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId (DatastoreApiHelper.java:108)
 в com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace (DatastoreApiHelper.java:118)
 в com.google.appengine.api.datastore.Key. (Key.java:104)
 в com.google.appengine.api.datastore.Key. (Key.java:88)
 в com.google.appengine.api.datastore.Key. (Key.java:84)
 в com.google.appengine.api.datastore.Entity. (Entity.java:122)
 в com.google.appengine.api.datastore.Entity. (Entity.java:103)
 в org.datanucleus.store.appengine.DatastoreFieldManager. (DatastoreFieldManager.java:187)
 в org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess (DatastorePersistenceHandler.java:338)
 в org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects (DatastorePersistenceHandler.java:251)
 в org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject (DatastorePersistenceHandler.java:240)
 в org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent (JDOStateManagerImpl.java:3185)
 в org.datanucleus.state.JDOStateManagerImpl.makePersistent (JDOStateManagerImpl.java:3161)
 в org.datanucleus.ObjectManagerImpl.persistObjectInternal (ObjectManagerImpl.java:1298)
 в org.datanucleus.ObjectManagerImpl.persistObject (ObjectManagerImpl.java:1175)
 в org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent (JDOPersistenceManager.java:669)
 в org.datanucleus.jdo.JDOPersistenceManager.makePersistent (JDOPersistenceManager.java:694)
 в com.stuff.server.GreetingServiceImpl.saveContact (GreetingServiceImpl.java:25)
 на com.stuff.server.TestCase.testServerCallBack (TestCase.java:18)
 на com.stuff.server.TestCase.main (TestCase.java:13)

TestCase.java

 открытый класс 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
}

}

приветствие ..... impl.java

 открытый класс GreetingServiceImpl расширяет RemoteServiceServlet, реализует
 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();
}

}

Есть ли способ сделать это? Как?

11
задан 23 March 2011 в 12:25
поделиться