سلوك غريب مع Restlet و GAE

لدي قطعة التعليمات البرمجية التالية مع Restlet في Google AppEngine من عميل Android.

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 الفعلي ، لا يحدث شيء. أنا فقط أحصل على الحالة: OK مشيرا إلى أن الطلب مرت.

لا أستطيع تحرّي الخلل في الأسباب التي تجعلني أفعل ذلك فقط في خادم Dev وهو يعمل بشكل جيد.

أي أفكار حول ما قد تكون المشكلة أو كيفية التعامل مع هذا؟

للإشارة ، الرمز في نهاية الخادم هو:

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

هذه مجرد كتابة بسيطة إلى مخزن البيانات باستخدام Objectify .

0

1 إجابة

Turns out this is a known issue. See here

الحل هو استخدام clientResource.setEntityBuffering (true)؛ . ومع ذلك ، يرجى ملاحظة أن هذه الطريقة متوفرة فقط في الإصدار المرشح لعميل Android وليس في الإصدار الثابت.

0
وأضاف