سؤال

هو AXIS أو CXF ضروري لخدمات جافا على شبكة الإنترنت؟ هل يمكن أن يتم ذلك عبر JDK (1.6)؟

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

المحلول

هل المحور أو CXF ضروري لخدمات Java Web؟

رقم على الرغم من ذلك AXIS2. هو الإطار الأكثر شعبية للعمل مع خدمات الويب ليست هي الطريقة الوحيدة للقيام بها.

هل يمكن أن يتم ذلك عبر JDK (1.6)؟

نعم، لكنها أكثر صعوبة بكثير. سوف تستفيد بشكل كبير من استخدام إطار عمل يستخدمه تطبيقات الآخرين ومن إصلاح فريق التطوير. القيام بكل يده هو مثل إعادة اختراع العجلة.

إذا كنت ترغب في الحصول على سيطرة كاملة على ما يحدث تحت، فربما يمكنك الذهاب مع: JAX-WS.

أو إذا كان التطبيق بسيط للغاية، مباشرة مع المقبس.

لكن، مرة أخرى، AXIS2. هي الطريقة الكنسية للقيام WS (ولكن ليس الوحيد)

نصائح أخرى

يعتمد ما يلي على القصة الحقيقية والشخصية:

لذا فأنت تريد أن تستهلك خدمة ويب في تطبيق Java Web الخاص بك، ولا تريد إضافة 10Mib من الجرار إلى ملفك الركزيل 1.3 Mib .war، وإلى جانب أنك عظيم في تحليل XML (يمكنك استعلام رمز XPATIL وملفات XSLT)، فهمت تماما HTTP، والعميل الذي تتداخل به لديه وثائق رائعة. يمكنك تنزيل نظرة WSDL على نقاط النهاية الخاصة بك وأساليبك وابدأ في إنشاء فئة Java التي توصيها إلى الميزات التي ستحتاج إليها. تشعر أنك كبير بالفعل.

إنهم بدأوا في القراءة حول كيفية إرسال طلب الصابون وتفكر جيدا في أن هذا يبدو قليلا ولكن ما يريدونه كل شيء مجرد سلسلة، لذلك تبدأ في بناء أداة مساعدة تأخذ كائن طلب Java الخاص بك وتحويله إلى طلب الصابون وبعد يمكنك إرسال طلب الصابون الواضح إلى الخادم لكنه ينكر (في عداد المفقودين التوقيع).

يمكنك الآن البدء في إضافة جارس تشفير إلى مشروعك وتبدأ في البحث عن كيفية حساب توقيع جزء من مستند XML وتضمين كل منهما والوثيقة في الطلب. هذا يأخذك بعض الوقت ولكن مع اختراق كافية تحصل على رسالة يمكنك إرسالها إلى خدمة الصابون الخاصة بك وأنت تتعامل الآن مع استجابة الصابون. وبعد الآن أنت تشعر بالراحة ...

حتى يغير المسؤول في عميلك متطلبات الأمان الخاصة به، مشكلات مفاتيح عامة جديدة، وتحديث واجهة الصابون مع بعض الأنواع المخصصة، والعميل التالي الذي يقوم بتشغيل خدمة مشابهة (ولكن على خادم Windows) يريد منك التنفيذ معهم نحن سوف.

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

تحديث على المناظر الطبيعية لخدمات الويب في عام 2013.

خدمات الويب المستخدمة لتكون الصابون ومقرها XML. تم توحيد خدمات الويب في JAX-WS. بعض الأطر الأكثر شعبية هي (كانت):

  • محور 1.x.
  • المحور 2
  • تتضمن Apache CXF - CXF أيضا بروتوكولات أخرى. إنه إطار أوسع بكثير
  • خدمات الويب المترو التي تتضمن تنفيذ مرجع JAX-WS.
  • تشمل Java 6 و Java 7 jax-WS RI افتراضيا. وهذا يعني أن الأطر لم تعد هناك حاجة لمجرد توليد عميل وخدمة كعب / هياكل عظمية

هناك تطبيقات أخرى غير مدرجة هنا وهي بائع خاص بائعين، مثل تطبيق WS WebMPhere الخاص ب IBM وتنفيذ WS WEBLogic.

بشكل عام، لإنشاء خدمات ويب، أود أن أوصي بالمترو و JAX-WS RI.

لاحظ أن هناك العديد من المعايير WS- * مثل الأمن WS الذي قد لا يكون جزءا من تطبيقات WS.

نظرا لأن خدمات الويب كانت موجودة لفترة من الوقت، فقد جاءت البدائل الأخرى من حيث النمط المعماري والبروتوكول والترميز.

على سبيل المثال، يستخدم XML ليكون ترميز De-Facto. جون الآن أكثر انتشارا. يستحق النظر في جاكسون أو جون جون محلل أو جوجل جونس. الحجج الرئيسية لصالح JSON هي أنها سهلة الاستخدام وخفيفة الوزن وصديقة للمطور.

جنبا إلى جنب مع جون جاء الراحة. الباقي هو النمط المعماري. مع الراحة، لا يزال بإمكانك تطبيق "خدمات الويب" بمعنى الخدمات البعيدة التي يمكن استهلاكها بسهولة عبر شبكة. كما تم توحيد الراحة في عائلة Java المعايير مثل Jax-Rs. بعض تطبيقات Jax-RS الشهيرة تشمل CXF و Jersey والديدان.

أخيرا، هناك بعض الأطفال الجدد على الكتلة التي تستخدم الترميزات الثنائية. هذه هي المخازن المؤقتة في بروتوكول Google و Apache Rivift. هدفهم الرئيسي هو الأداء وكذلك الدعم الأوسع للغات الأخرى (Java، C #، Erland، Perl ...).

عند تطوير خدمة ويب اليوم، يجب أن يكون السؤال: - هل أهتم بالأداء؟ - هل أريد الوصول إلى الخدمة من العديد من اللغات المختلفة؟ - هل أريد الصديقة للهواتف المحمولة؟

يجب أن تساعدك هذه في توجيه اختيارك. أيضا، أفضل أن أبقي تبعياتي إلى الحد الأدنى. هذا يعني أنني أفضل أخذ شيء أصلي إلى JRE أو JDK، مثل التنفيذ المرجعي JAX-WS أو JAX-RS.

كبديل للمحور، يمكنك استخدام خدمة ربيع الربيع إطار لتشغيل تطبيق WebServices الخاص بك داخل حاوية J2EE مثل Tomcat أو أي شيء مماثل. لقد وجدت أنه من السهل الاستخدام والإعداد، وإذا كنت ترغب في دمج مواقع الويب الخاصة بك في تطبيق ويب آخر في وقت لاحق، فمن السهل جدا القيام به (لقد فعلت ذلك بنفسي في مناسبتين منفصلتين).

يمكنك استخدام تدفقات HTTP التي توفرها خادم الويب أثناء وجودك، ولكن باستخدام إطار عمل وبعض الجرار (التي أثبتت أن العمل) ستوفر لك الكثير من الصداع والكثير من الوقت على المدى الطويل.

عادة سوف ترغب في استخدام إطار برمجة لخدمات الويب.

شيء مثل المحور، CXF، أو Java EE (Glassfish) تنزيل من Sun.

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