मैं उम्मीद कर रहा हूं कि यहां कोई मुझे कुछ मार्गदर्शन दे सकता है। मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जहां हम आईबीएम एमक्यू संदेश ब्रोकर का उपयोग करते हैं। परियोजना में निम्नलिखित शामिल होंगे
MQ से डेटा प्राप्त करें
- MQ हमें xml प्रारूप में रिकॉर्ड भेजेगा
- मुझे इन xml फ़ाइलों को लेने और उन्हें objets में बदलने की आवश्यकता है
MQ को डेटा भेजें
- मुझे वस्तुओं को xml प्रारूप में बदलने की आवश्यकता है
- मुझे इन xml रिकॉर्ड को MQ पर भेजने की आवश्यकता है
जिस हिस्से पर मैं कुछ इनपुट देखूंगा वह xml हिस्सा है। मैंने इन पार्सरों पर थोड़ा JAXP, JAXB, JDOM, XOM पर शोध किया लेकिन एक वेब डेवलपर होने के नाते, यह बताना मुश्किल है कि मेरे परिदृश्य के लिए कौन बेहतर है।
मैं इस विषय पर अनुभव के साथ किसी से उम्मीद कर रहा हूं कि वह सबसे अच्छा समाधान सुझा सकता है।
धन्यवाद
उत्तर:
उत्तर № 1 के लिए 1यदि आपके पास पहले से परिभाषित स्कीमा (XSD) है तो JAXB शायद सबसे अच्छा समाधान है आप का उपयोग करके अपने जावा कक्षाएं उत्पन्न कर सकते हैं xjc.exe
commnad लाइन टूल और आपकी XSD फ़ाइल पर इंगित करता है।
यदि आपके एक्सएमएल दस्तावेज़ विशाल हैं, तो आपको मेमोरी बाधाओं पर विचार करना होगा। ये पद स्मृति मुद्दों और JAXB के बारे में बातचीत।
यदि आप एक स्कीमा को परिभाषित नहीं करते हैं तो आपके पास JAXB के साथ काम करने के लिए अधिक काम है, लेकिन यह संभव है इस पोस्ट के अनुसार
संक्षेप में, XSD को परिभाषित करने का प्रयास करें और फिर JAXB उपयोग करने के लिए एक चुटकी है।
MQ चीजों पर, मैं व्यक्तिगत रूप से MQ संदेशों को भेजने / प्राप्त करने / परिवर्तित करने के लिए स्प्रिंग फ्रेमवर्क (JAXB का समर्थन करता है) का उपयोग करूंगा। के बारे में पढ़ें DefaultMessageListenerContainer स्प्रिंग एपीआई (यह मानते हुए कि आप जावा में अपने हाथों को गंदा करते जा रहे हैं) वैकल्पिक रूप से आप उपयोग कर सकते हैं वसंत एकीकरण, लेकिन मैंने व्यक्तिगत रूप से इसका उपयोग नहीं किया।
उत्तर № 2 के लिए 1
मुझे लगता है कि JAXB इस उद्देश्य को पूरा करता है और आपको किसी विशेष जार की आवश्यकता नहीं है क्योंकि फ्रेमवर्क में एम्बेडेड है। XOM भी काम कर सकता है, लेकिन आपको थर्ड पार्टी लाइब्रेरी की आवश्यकता है।