线程 "main" java.lang.NullPointer 中的异常异常:没有为此线程注册 API 环境 getCurrentAppId



语言:-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。祝你好运

最新更新