سؤال

ولدي حاليا تطبيق GWT الذي يستخدم RequestBuilde ل إرسال رسائل إلى بريمج لقد (باستخدام POST وGET)، وبلدي بريمج (في doPost وdoGet) "مؤقتا" (يتم طلب ذلك عن طريق استخدام السيرفلتس 3.0 المواصفات) ويضيف إلى قائمة الانتظار.
بالإضافة إلى ذلك لدي موضوع الخفي الذي يعمل في الخلفية و "يلعب" على طلب عندما يكون هناك بيانات جديدة.
هذا وتعمل كبرى بالنسبة لي بصرف النظر عن حقيقة أن أنا فقط إرسال سلاسل للالآن وكنت ترغب في الاستفادة من آلية RPC لإرسال الكائنات.
سؤالي هو: إذا
I إنشاء صفي myServiceImpl الذي يمتد RemoteServiceServlet كيف ينبغي أن تعامل مع doPost وdoGet على كل حال منتديات أنا بحاجة إلى وقفة طلبي للاستفادة من الدعم غير متزامن، حيث يجب أن يتحقق هذا؟ أنا على الرغم ربما لاستدعاء الأسلوب this.getThreadLocalRequest() في طريقة RPC بلدي في الصف myServiceImpl لكنني لست متأكدا من الحكمة أن يكون.
لست بالتأكيد أنا حتى نفهم كيف يتعامل مع GWT المكالمة من جانب العميل من تلك الواجهة غير متزامن. هل من قبل أي فرصة الاتصال doGet على سبيل المثال من بريمج و يتأكد يقوم باستدعاء أسلوب RPC المطلوبة؟
أنا آسف إذا أنا قدمت فوضى الأشياء انها مجرد أنني لا يمكن أن تجد أكثر معلومات تقنية مفصلة على النحو بالضبط كيف يعمل هذا العمل RPC.
نقدر أي جهة الإقراض
إتاي

هل كانت مفيدة؟

المحلول 2

وأعتقد أن سوء الفهم الرئيسي كان في ذلك الوقت كان مرتبطا إلى حقيقة أن GWT RPC يبني على آلية بريمج (داخليا) وذلك في محاولة لاستخدام هذه الآلية مع السيرفلتس غير متزامن كان، في ذلك الوقت، من المستحيل منذ كان GWT RPC بنيت على السيرفلتس 2.5 (مرة أخرى، في ذلك الوقت).

نصائح أخرى

لفهم RPC ننسى ما بعد وسهولة الحصول عليها يعمل بشكل مختلف (أي من وجهة نظر البرمجة. داخليا كنها لا تستخدم ذلك، ولكن لم تشاهد أو تحتاج لفهم ذلك، إلا إذا كنت تريد أن تفعل شيء غريب). وهناك نقطة انطلاق جيدة على RPC هو مستندات GWT: http://code.google كوم / webtoolkit / دروس / 1.6 / RPC.html

لتعطيك ملخص. عند استخدام RPC بريمج الخاص myServiceImpl يحتاج إلى تنفيذ طرق لmyService اجهة اسمه، إلى جانب توسيع RemoveServiceServlet. طرق الحصول على كوسائط البيانات التي تريد إرسالها إلى الملقم.

وبجانب واجهة myService تحتاج إلى إنشاء واجهة myServiceAsync (على حد سواء يجب أن يكون واجهة في حزمة فرعية العميل). يجب أن يحتوي هذا و inteface myServiceAsync الأساليب نفسها واجهة myService إلا كل الأسلوب بإرجاع void ولها حجة آخر إضافي AsyncCallback callback.

في العميل الذي تحتاج إلى أداة GWT لتوليد RPC عبر GWT.create (راجع وثائق للحصول على التفاصيل.

لاستخدام RPC، استدعاء الأساليب على واجهة myServiceAsync في رمز العميل الخاص بك وGWT يعتني إرساله إلى بريمج. فإن بريمج ثم استدعاء الأسلوب مطابقة مع الحجج التي مرت على العميل. ويتم ذلك غير المتزامن. وهكذا العميل العودة مباشرة من المكالمة.

وعندما يرسل الخادم النتيجة مرة أخرى الاستدعاء الذي تم تمريره myServiceAsync يستخدم أو ما يسمى OnError أو OnSuccess. OnError إذا رمى الطريقة على الجانب الخادم خطأ، OnSuccess آخر. سوف يكون OnSuccess كوسيطة قيمة الإرجاع من ما عاد في طريقة تنفيذها من قبل بريمج الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top