2012-06-21 3 views
0

Android 클라이언트의 RestletGoogle AppEngine의 코드 조각이 있습니다.Restlet과 GAE의 이상한 동작

ClientResource clientResource = new ClientResource(RESTLET_TEST_URL); 
ProductResource productResource = clientResource.wrap(ProductResource.class); 
productResource.store(mProduct); 
Status status = clientResource.getResponse().getStatus(); 
Toast.makeText(this, "Status: "+ status.getDescription(), Toast.LENGTH_SHORT).show(); 
clientResource.release(); 

.store() 방법은 PUT 요청과 유사합니다. 이상하게도 개발 서버에 연결할 때 제대로 작동하지만 실제 AppEngine 사이트에서는 아무 일도 일어나지 않습니다. 방금 요청이 완료되었음을 나타내는 Status: OK이 표시됩니다.

문제가 해결되지 않는 이유는 Dev Server에서만 가능하기 때문입니다.

문제의 원인 또는 해결 방법에 대한 의견이 있으십니까?

참조 들어, 서버 단에서의 코드이다

if (product != null) { 
    if (new DataStore().putToDataStore(product)) { 
    log.warning("Product written to datastore"); 
} else { 
     log.warning("Product not found in datastore"); 
    } 
} 

Objectify을 사용하여 데이터 저장소에 대한 단순한 기록된다.

답변

0

이것은 알려진 문제입니다. here

이 해결책은 clientResource.setEntityBuffering(true);을 사용하는 것입니다. 그러나이 방법은 Android 클라이언트 용 릴리스 후보에서만 사용할 수 있으며 안정 릴리스에서는 사용할 수 없습니다.