2010-09-03 8 views
7

मैं अपाचे सीएक्सएफ के साथ खेल रहा हूं, विशेष रूप से विभिन्न डेटा बाइंडिंग जो इसका समर्थन करता है: जेएक्सबी (डिफ़ॉल्ट), एमटीओएम, एगेस और एक्सएमएलबीन। चूंकि ये सभी समर्थित हैं, मुझे लगता है कि प्रत्येक के पास इसकी योग्यता है। मैं इनके साथ आया:सीएक्सएफ के भीतर, जेएक्सबी की तुलना में किसी अन्य बाध्यकारी का उपयोग क्यों करें? (एमटीओएम संलग्नक, एगेस, एक्सएमएलबीन, ...)

  • जाहिर है, एमटीओएम को प्राथमिकता दी जानी चाहिए जहां बड़े अनुलग्नक शामिल हैं।
  • जेएक्सबी एनोटेशन पर निर्भर करता है, इसलिए कक्षाओं में संशोधन प्रतिबंधित होने पर यह कम अनुकूल होता है।
  • एगेस के पास wsdl2java उपकरण नहीं है, इसलिए यह "अनुबंध-प्रथम" विकास के लिए कम अनुकूल है, यानी डब्लूएसडीएल से शुरू करें और उस से अपना जावा कोड जेनरेट करें।
  • यह कि एजिस कक्षा .aegis.xml फ़ाइलों में अपने कथात्मक वाक्य रचना के माध्यम से जावा वर्गों और XML के बीच मानचित्रण के ऊपर से थोड़ा अधिक नियंत्रण प्रदान करता है प्रकट होता है। दूसरी ओर, मैं किसी भी परिदृश्य का निर्माण नहीं कर सका जहां जेएक्सबी ने चाल नहीं की थी।

मैं इस सवाल JAXB और XMLBeans juxtaposing मिला, लेकिन यह एक व्यापक सिंहावलोकन नहीं देता:

JAXB vs Apache XMLBeans

इन अनुभवहीन इसके अलावा, एक प्रायोरी विचार, आप की क्या ज़रूरत है किसी भी रक्त-और- जेएक्सबी के अलावा किसी भी अन्य बाध्यकारी के उपयोग का समर्थन करने वाले अनुभवों को प्रभावित करता है? मैं एक सीएक्सएफ दृष्टिकोण से पूछ रहा हूं, लेकिन यदि कोई अन्य विकल्प दिमाग में आता है (उदा। कास्टर) कृपया विस्तृत करने में संकोच न करें।

उत्तर

3

यदि डब्लूएसडीएल पहली वेब सेवा बनाने के लिए स्क्रैच से शुरू होता है, तो मैं निश्चित रूप से जेएक्सबी 95% समय (शायद यहां तक ​​कि उच्च) के साथ चिपकने की सिफारिश करता हूं। यह निश्चित रूप से सीएक्सएफ में सबसे अच्छा परीक्षण डेटाबेस है और काफी अच्छा प्रदर्शन करता है।

कहाँ अन्य databindings में आते हैं दो मामलों में से एक के लिए आम तौर पर कर रहे हैं:

1) जावा पहला प्रयोग मामलों में जहां आप पहले से ही जावा में लिखा कुछ है कि आप कोई संशोधन करने के लिए थोड़ा के साथ एक वेब सेवा के रूप में बेनकाब करना चाहते हैं कोड के लिए। एगेस की यहां इसकी ताकत है क्योंकि यह जेएक्सबी की तुलना में चीजों की विस्तृत श्रृंखला को संभालने में सक्षम होने के लिए डिज़ाइन किया गया है। हालांकि, अगर आप कोड को संशोधित कर सकते हैं, तो जेएक्सबी एनोटेशन जोड़ना आम तौर पर कठिन नहीं है। यदि आपके पास अधिकतर सामान्य "बीन्स" हैं, तो यह एक बड़ा सौदा नहीं है।

2) मौजूदा अनुप्रयोग जो एक विशेष मैपिंग का उपयोग करते हैं। यदि आपके पास एक्सएमबीबीन्स बीन्स (या जीएसओसी प्रोजेक्ट का पालन करते हुए जीबीएक्स बीन्स का 2.3-एसएनएपीएसएचओटी का उपयोग करते हुए एसडीओ बीन्स) की अपेक्षा कर रहे हैं, तो अन्य डेटाबेस का उपयोग करने से जेएक्सबी से उन ऑब्जेक्ट मॉडल में किसी भी आवश्यक मैपिंग को हटाकर मदद मिल सकती है। ।

आशा है कि थोड़ा सा मदद करता है।

3

याद रखें कि JAXB is a specification तो कई कार्यान्वयन देखते हैं: Metro (संदर्भ कार्यान्वयन, MOXy (मैं तकनीक का नेतृत्व कर रहा हूँ), आदि

JAXB जावा वर्गों या XML स्कीमा से शुरू किया जा सकता है यदि आप वर्गों है। जिसे संशोधित नहीं किया जा सकता है व्यक्तिगत JAXB प्रत्यारोपण उस को संभालने के लिए एक्सटेंशन प्रदान करते हैं।MOXY के externalizable मेटाडाटा देखें:

JAXB साथ MTOM संलग्नक लगाव marshaller/unmarshaller देखने के काम करने के लिए डिजाइन किया गया था।

MOXY XPath आधारित है मैपिंग जो आपके वस्तु-टू-एक्सएमएल बाध्यकारी देखने का पूरा नियंत्रण प्रदान करता है:

संबंधित मुद्दे

 संबंधित मुद्दे