2012-07-26 56 views
1

我在Google App Engine上有一個Java應用程序,它帶有一個從Google雲端存儲中加載大圖像的servlet。這段代碼確實有效(比如......昨天),而且由於某種原因它已經不復存在了,但我沒有編輯它!雖然幾次刷新,但它曾經返回大約一半的應該加載的圖像,然後停止。Google App Engine/Java:blobstore.serve返回500服務器錯誤

這裏是servlet:

@SuppressWarnings("serial") 
public class SomeServlet extends HttpServlet 
{ 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException 
    { 
     BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService(); 
     String file = req.getParameter("file"); 
     String folder = req.getParameter("folder"); 

     BlobKey blobkey = blobstore.createGsBlobKey("/gs/bucket/" + folder + "/" + file + ".jpg"); 

     blobstore.serve(blobkey, resp); 
    } 
} 

這裏是日誌說什麼,沒有任何警告/錯誤/關鍵標誌:

2012-07-26 19:44:54.635 /servlet?folder=SomeFolder&file=SomeFile 200 96ms 0kb Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 [26/Jul/2012:10:44:54 -0700] "GET /servlet?folder=SomeFolder&file=SomeFile HTTP/1.1" 200 334 - "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1" "myapp.appspot.com" ms=97 cpu_ms=103 api_cpu_ms=33 cpm_usd=0.002957 instance=00c61b117cef9993f79be3c568c0cbda0f14

這裏是http://myapp.appspot.com/servlet?folder=SomeFolder&file=SomeFile顯示:

Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it.

任何想法?

謝謝!

回答

0

我建議以下找出確切的問題:

  • 把一個try/catch在你的doGet和在catch異常處理程序,記錄錯誤消息或寫在屏幕上。
+0

我無法追蹤任何東西。順便說一下,在嘗試時,servlet在數十次調用中確實有兩次隨機工作,並且它也返回了一半圖像。我沒有看到原因! – user1394563 2012-07-26 22:20:51

0

您確定您的應用程序可以訪問您嘗試提供文件的存儲桶嗎?應用程序中的服務帳戶至少需要讀取您嘗試提供服務的對象的權限。

該文件的實際服務發生在您的servlet之外,這就是爲什麼您在日誌中沒有看到任何內容。

+0

是的,訪問是好的。它以前也工作過!我不確定,但對我來說,它似乎來自Google存儲,因爲我試圖直接訪問該文件(公開分享一段時間),並且它一直返回類似「圖像無法顯示,因爲它包含錯誤」 ...有時候,圖像確實隨機出現,同時令人耳目一新,所以我不知道... – user1394563 2012-07-27 13:41:54

相關問題