سؤال

أنا بصدد البحث/مقارنة CXF وSpring-WS لخدمات الويب؟أحتاج إلى العمل كمزود ومستهلك لـ WS.باختصار، قيل لي أن Spring-WS أكثر قابلية للتكوين، ولكن CXF أسهل في الإعداد والتشغيل.هذا السؤال شخصي، ولكنه سيساعدني في توجيه بحثي.

  • ما هي الخبرة التي لديك مع أي من هذه الأطر؟
  • هل واجهت أي مطبات مع أي من الإطارين؟
  • هل وجدت أي ميزات مفيدة يقدمها أي منهما وربما لا يقدمها الآخر؟
هل كانت مفيدة؟

المحلول

أعتقد أن الاختلاف الأكبر هو Spring-WS فقط "العقد أولاً" بينما أعتقد أن CXF هو عادةً "العقد الأخير".

http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

يبدأ العقد الأخير بكود Java، لذلك عادةً ما يكون البدء به أسهل.

ومع ذلك، فإن WSDL الذي ينشئه يميل إلى أن يكون أكثر هشاشة.

نصائح أخرى

حول أباتشي CXF:

  • يدعم CXF العديد من المعايير بما في ذلك SOAP وملف تعريف WSI الأساسي وWSDL وWS-Addressing وWS-Policy وWS-ReliableMessaging وWS-Security وWS-SecurityPolicy وWS-SecureConversation.
  • يقدم Apache CXF أسلوبي العقد الأخير (بدءًا بـ Java) والعقد أولاً (بدءًا بـ WSDL).
  • يقوم Apache CXF بتطبيق JAX-WS وJAX-RS.

حول الربيع WS:

  • يقدم Spring WS العقد "فقط" أولاً، بدءًا من مخطط XSD.
  • يدعم Spring WS SOAP وWS-Security وWS-Addressing.

لذا، في النهاية، أرى أن Spring WS هو الحد الأدنى إطار خدمات الويب ولكن ضع في اعتبارك أنه (في رأيي) لا يتمتع بأي مزايا مقارنة بـ Apache CXF (الذي يتكامل بشكل جيد للغاية مع Spring).بين كليهما، سأختار Apache CXF.

لا يمنعك CXF بأي شكل من الأشكال من البدء بعقد (WSDL).لقد استخدمت كلا هذين المنتجين لبناء خدمة ويب.

في CXF، استخدمت Maven والمكون الإضافي Maven، لاستدعاء com.wsimport الهدف هو إنشاء SEI (الواجهة) التي قمت بتنفيذها بعد ذلك.بعد تنفيذ الواجهة، تحتوي على منطق الخدمة الفعلي وتكوين تنفيذ الفول الخاص بي beans.xml, ، ثم تركت Maven يحزمها في ملف حرب للنشر.لم يكن من الممكن أن يكون التمرين بأكمله أسهل.

لا أعتقد أن Spring-WS يقدم أي مزايا تفوق عدم وجود JAX-WS.تتيح لك CXF بالفعل استخدام Spring لتوصيل حبوب الفول الخاصة بك ولديها أيضًا تطبيق كامل لـ JAX-WS أيضًا.

لدينا تجربة مع CXF وهو سابق اكس فاير ويمكنني أن أوصي به كإطار عمل قوي وسريع (إنشاء وتنفيذ WS) وموثوق.

فيما يتعلق بالمشكلات التي يمكن أن تواجهها مع CXF، راجع رسالتي https://stackoverflow.com/questions/289977/recommending-framework-for-java-web-services#290205وأنا أتفق مع أدوات, ، أن الاختلاف الأكبر بين الأطر هو من الناحية الأيديولوجية:ما هو الكود الأول (أيالواجهة) أو العقد (أيwsdl).انظر بعض التفاصيل هنا:

أباتشي CXF:

الإيجابيات الرئيسية :

❶ خدمات الويب الأكثر استخدامًا هي المعيار الآن؛تحسينات على AXIS2، والذي يتم الآن استبداله تدريجيًا بـ Apache CXF

❷ بديهي وسهل الاستخدام (يتطلب ترميزًا أقل مقارنةً بـ AXIS2)

❸ فصل واضح للواجهات الأمامية، مثل JAX-WS، عن الكود الأساسي

❹ متوافق تمامًا مع JAX-WS وJAX-RS وغيرها

❺ أفضل أداء عبر جميع الأطر المتاحة مع الحد الأدنى من النفقات الحسابية

❻ يدعم مجموعة واسعة من نماذج الواجهة الأمامية

❼ يدعم كلاً من JAX-WS وJAX-RS (للخدمات المريحة)

❽ يدعم JBI وSDO (غير مدعوم في AXIS2)

❾ متوافق مع Spring Framework

المخاوف الرئيسية:

❶ لا يدعم معاملات التنسيق وWS حتى الآن

❷ لا يدعم WSDL 2.0 حتى الآن

الربيع وس:

الإيجابيات الرئيسية :

❶ الأفضل من حيث دعم نهج تطوير خدمات الويب بالعقد الأول

❷ يفرض المعايير وأفضل الممارسات من خلال قيود الإطار (لا يوجد مخرج منها وبالتالي القيود أيضًا)

❸ يدعم التعليقات التوضيحية الربيعية بالإضافة إلى JAX-WS

❹ أقل كود من وجهة نظر المطور

❺ أفضل محاذاة مع Spring Technology Stack (أيضًا مجموعة معمارية مشابهة مثل Spring MVC) بما في ذلك Spring Security

المخاوف الرئيسية:

❶ أقل عدد من مواصفات WS-* المدعومة (غير متوافقة تمامًا مع JAX-WS)

❷ يقدم Spring نفسه كمعيار قياسي وبالتالي تدعم أطر العمل الأخرى المتوافقة مع Java دعمًا أفضل للمعايير

❸ دعم نموذج تطوير خدمات الويب ذي العقد الأول فقط

مصدر : https://dzone.com/articles/Apache-cxf-vs-Apache-axis-vs

هناك خيار آخر يجب مراعاته في هذه المقارنة أعلن.

خاصة إذا كنت ترغب في البدء بـ Java أولاً.

يرجى إلقاء نظرة على وظيفة ذات الصلة في: بناء خدمة ويب باستخدام Spring-WS

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