باستخدام آلية GWT RPC مع بلدي بريمج مرغوب
-
07-07-2019 - |
سؤال
ولدي حاليا تطبيق 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
كوسيطة قيمة الإرجاع من ما عاد في طريقة تنفيذها من قبل بريمج الخاص بك.