语言:-Java 1.7
环境-Eclipse IDE开普勒
需求:-它是关于从java应用程序中获取数据的。我在GAE中创建了一个web应用程序,它运行良好。现在我想我的应用程序代码应该从main运行,并检索存储在Data Store中的日期。需要从核心java应用程序中获取数据。
import java.util.List;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.PreparedQuery;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.FetchOptions;
public static void main(String[] args)
{
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("SMS").addSort("Date", Query.SortDirection.DESCENDING);
List<Entity> customers = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(50));
for(Entity e : customers){
System.out.println("Service: - " + e.getProperty("Service") );
System.out.println("UserName: - " + e.getProperty("UserName") );
System.out.println("QueryString: - " + e.getProperty("QueryString") );
System.out.println("EmailId: - " + e.getProperty("EmailId") );
System.out.println("MobileHashFormat: - " + e.getProperty("MobileHashFormat") );
System.out.println("Date: - " + e.getProperty("Date") );
System.out.println("Status: - " + e.getProperty("Status") );
}
}
异常:-
线程"main"java.lang.NullPointerException中的异常:没有为此线程注册API环境。网址:com.google.aappengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:86)网址:com.google.aappengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:102)网址:com.google.aappengine.api.datastore.Query.(Query.java:215)网址:com.google.aappengine.api.datastore.Query.(Query.java:144)在serive。TestGAEFile.main(TestGAEFfile.java:17)
当你试图从命令行运行时,你需要明白谷歌应用引擎需要做很多工作来设置本地环境,提供足够的服务,甚至让API以你想要的方式工作。
为了方便以这种本地方式进行测试,您需要阅读本地单元测试功能。退房https://developers.google.com/appengine/docs/java/tools/localunittesting?csw=1您将需要额外的JAR,并使用LocalTestingHelper类来为您设置环境。
它不能从公共静态void main()中工作。它将在servlet中工作,当我遇到同样的错误时,我刚刚尝试了这个servlet。祝你好运