2015-12-02 91 views
0

我使用java GWT開發了我的應用程序,並在Google應用程序引擎上部署了我的應用程序。我訪問的網址是sample.myappid.appspot.com我想打電話給通過這個代碼的網址,所以我做了這樣的: -如何從谷歌應用程序引擎調用我的應用程序url

URL url; 
      try { 
       url = new URL("http://sample.myappid.appspot.com"); 

      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setDoOutput(true); 
      connection.setRequestMethod("POST"); 


      if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { 
       // OK 
       logger.log(Level.SEVERE,"Done okkkkkk"); 
      } else { 
       // Server returned HTTP error code. 
       logger.log(Level.SEVERE,"Erorrrrrrr"); 
      } 

      } catch (Exception e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

這不是叫我的網址。所以任何其他解決方案如何使用代碼調用我的URL。

任何幫助?

回答

1

如果/從應用程序的請求處理程序向您的應用程序發出請求時需要注意,因爲您可能會導致無限遞歸循環,使GAE嘗試產生新的應用程序實例以嘗試提供每個此類請求。可能與您的其他問題有關:while user inactivity of 2mins getting info "This request caused a new process to be started for your application"

有幾種方法從自身編程訪問你的應用程序,在內部,基本上在應用的服務命名空間路徑發出請求(如/index.html爲例):

這些內部方法發起的請求在內部是g獨立於外部請求,並且可以安全地用於實現你的應用程序的邏輯(如果誤用,循環仍然是可能的,但僅僅創建大量的活動,它們不是無限的重新生成/死鎖,強制GAE產卵每個請求的新實例)。

您也可以使用應用程序的通用URL訪問(適用於任何URL,不僅適用於您的應用程序),就像外部用戶訪問您的應用程序一樣。這些可以爲你的應用程序的自動化測試是有用的,但請注意,可以比內部訪問方法更昂貴的,我不會推薦他們真正實現您的應用程序的邏輯:

這些外部訪問方法也會遇到無限遞歸問題,因此請小心使用它們。

+0

我想作者問了關於GWT,所以這將是客戶端請求,而不是從服務器 –

+0

@IgorArtamonov Hm,可能。我的迴應是基於「使用Java GWT開發我的應用程序,並且我在谷歌應用程序引擎上部署了我的應用程序」。如果確實是客戶端,答案仍然適用於服務器端實現(遞歸循環同樣可以從外部請求觸發)。 –