كيف MTOM العمل + نموذج التعليمات البرمجية
-
26-09-2019 - |
سؤال
أنا في محاولة لجعل بسيط جدا خدمة الويب الذي يفعل ما يلي:
- العميل يضرب خدمة ويب طلب الملف.
- خدمة ويب خدمة الطبقة الاستفسارات hashtable الذي لديه المفتاح (البحث) و قيمة base64encoded قيمة الملف (أقول pdf)
- الآن أنا بحاجة إلى استخدام MTOM للعودة base64encoded القيمة المخزنة في hashtable إلى العميل.
انها تصل العميل لفك و تحويله إلى pdf.
لذا ها هي أسئلتي:
أفهم أننا ترميز الملفات إلى base64 الإرسال عبر خدمة ويب ، ولكن أين وكيف MTOM تأتي في الصورة هناك ؟
يمكن بعض واحد تقدم لي طريقة بسيطة والذي يستخدم MTOM ويرسل البيانات.هل نحن بحاجة إلى تحديد شيء في WSDL أيضا ؟ أو سلسلة بسيطة العودة النوع كافية ؟ السبب/لم لا ؟
شكرا
لقد رأيت هذا رمز.ويستخدم الكثير من الشروح ، أنا فقط بحاجة بسيطة كود جافا باستخدام MTOM.جديد J2EE هنا :)
تحديث 1
لائق بما فيه الكفاية شرح هنا, الآن أنا في حاجة إلى فهم ذلك من مستوى التنفيذ.معلومات جيدة هنا, لكن بالنسبة .صافي
تحديث 2
ما ينبغي أن يكون العائد من نوع الأسلوب "createMTOM(int id)"??
المحلول
يبدو أن خلط تنفيذ البروتوكول.
المواصفات MTOM هو هنا. هذا الصفحة عينة الرسائل.
إذا كنت تستخدم جاكس-WS البيئة ، يمكنك بالتأكيد استخدام Annotations
لتشغيله.إذا كنت المتداول الصابون الرسائل باليد ، أنت تكتب ما كود جافا تحتاج إلى كتابة في إنتاجه.أساسا ، MTOM يعني أن محتوى البيانات الانتقال إلى مرفق ، وهي منفصلة MIME جزء من الرسالة و هو المشار إليه من خلال xop:تشمل عنصر href إلى MIME جزء.
المخطط له أن يقول base64Binary حسب نوع العنصر, ولكن سمات إضافية تعطي تلميحات عن تفسير بايت:xmime:contentType و xmime:expectedContentType.في تجربتي ، جاكس-ب المرجعية تنفيذ بعض القيود على استخدام هذه.لا يمكنك ، على سبيل المثال ، الحصول عليه تلقائيا تحويل النص ذهابا وإيابا بايت.في نموذجي عدة مثل CXF أو Glassfish ، يمكنك وضع البيانات في DataHandler و طقم يتحول إلى المرفق.
نصائح أخرى
يتم توفير مثال / مناقشة مفصلة جيدة في IBM Redbook: تطوير تطبيقات خدمات الويب ، انظر الصفحات 64-74
هناك مقالة مفيدة هنا الذي يصف MTOM وكيفية تمكينه مع CXF. تتضمن المقالة أيضًا رمز المصدر لمثال عمل.