2013-05-30 25 views
7

我對Google App Engine(GAE)和Glassware開發(對於Google Glass)非常陌生。找不到API包'urlfetch'或調用'Fetch()'

我配置mirror-quickstart-java項目上NetbeansApache tomcat也是我成功地運行該項目,但我未來有麻煩。

我的要求是,我不想使用谷歌應用程序引擎來開發自己的Glassware,因爲我想使用很少的第三方API。此外,應用引擎不支持javax.imageioBufferedImage apis。

我有以下幾點問題

  1. 是否是強制性使用谷歌app-engine爲鏡快速入門的Java /玻璃器皿發展?
  2. 如果不是,在交換訪問令牌時出現「允許訪問」步驟後出現以下錯誤。
message The API package 'urlfetch' or call 'Fetch()' was not found. 

description The server encountered an internal error that prevented it from fulfilling this request. 

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'urlfetch' or call 'Fetch()' was not found. 
    com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:100) 
    com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:38) 
    com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:75) 
    com.google.api.client.http.HttpRequest.execute(HttpRequest.java:980) 
    com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:299) 
    com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.execute(GoogleAuthorizationCodeTokenRequest.java:175) 
    com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.execute(GoogleAuthorizationCodeTokenRequest.java:78) 
    com.google.glassware.AuthServlet.doGet(AuthServlet.java:56) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

回答

5

移動從App Engine的快速啓動項目到另一個J2EE容器是非常簡單的,但它確實需要一些代碼更改:

  1. 與像NetHttpTransport替代更換的UrlFetchTransport實例。這將影響AuthUtil.javaMirrorClient.java
  2. 更換ListableAppEngineCredentialStore.java一個新的執行CredentialStore與任何持久層你喜歡(休眠時,SQLite等)的作品。

您還需要對依賴關係管理和構建腳本進行一些更改,但是您自己獨立,因爲這取決於您計劃如何運行它。

1

它不需要使用AppEngine上你的玻璃器皿。唯一的要求是訂閱回覆將使用HTTPS發送給您,因此您需要確保您的服務器已正確配置以處理此問題。

該urlfetch包是特定於appengine。您應該確保將appengine庫從您的項目中移除,並且將引用它的任何代碼重新編寫爲使用標準的java.net庫。由於這是身份驗證的一部分,因此您可能需要使用替代的OAuth2方法,如Google+ Sign-In

相關問題