2016-04-17 5 views
0

私はこの例を試していますhttps://cloud.google.com/appengine/docs/java/tools/remoteapi Javaアプリケーションとしてスクリプトを実行するとすべてうまくいきますが、サーブレットとして実行すると常に永遠にロードされ、エラー。また、localhost上で正常に動作します。また、私はそれが(datastore.put)、サーブレットがすぐに読み込まコメントアウトときにクエリが行われたときに気づいた。サーブレットからのRemoteApiコールがローカルのアプリケーションエンジンのアプリケーションにロードされていない

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(); 
    } 
    } 
} 

答えて

1

私は)(RemoteApiOptionsを使用するために必要な、それを考え出した代わりにuseApplicationDefaultCredentialの。useServiceAccountCredential( "サービスの電子メール"、 "p12key")()

関連する問題