2016-04-17 5 views
0

Ich versuche dieses Beispiel https://cloud.google.com/appengine/docs/java/tools/remoteapi Alles funktioniert gut, wenn ich Script als Java-Anwendung ausführen, aber wenn ich es als Servlet es immer lädt für immer und wirft keine Fehler. Funktioniert auch gut auf localhost. Ich habe auch bemerkt, dass es passiert, wenn eine Abfrage gemacht wird, wenn ich es auskommentiere (datastore.put), wird das Servlet sofort geladen.RemoteApi Anrufe von Servlet nicht laden in lokalen App Engine App

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.tools.remoteapi.RemoteApiInstaller; 
import com.google.appengine.tools.remoteapi.RemoteApiOptions; 

@SuppressWarnings("serial") 
public class Gae_java_Servlet extends HttpServlet { 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { 

    RemoteApiOptions options = new RemoteApiOptions() 
     .server("java-dot-project.appspot.com", 443) 
     .useApplicationDefaultCredential(); 
    RemoteApiInstaller installer = new RemoteApiInstaller(); 
    installer.install(options); 
    try { 
     DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
     System.out.println("Key of new entity is " + 
       datastore.put(new Entity("Hello Remote API!"))); 
    } finally { 
     installer.uninstall(); 
    } 
    } 
} 

Antwort

1

ich es herausgefunden, benötigen RemoteApiOptions() zu verwenden. UseServiceAccountCredential ("Service E-Mail", "p12key") anstelle von useApplicationDefaultCredential()

Verwandte Themen