से उत्पन्न एक webservice क्लाइंट पर यूआरएल बदलना मैं एक जावा अनुप्रयोग के लिए एक मॉड्यूल लिखने की कोशिश कर रहा हूं जो डब्लूएसडीएल-वर्णित webservice तक पहुंचता है। स्रोत डब्लूएसडीएल को सीधे एएसपी.NET webservice होने के नाते विश्वास से डाउनलोड किया गया था; सेवा यूआरएल एक .asmx एक्सटेंशन में समाप्त होता है, और ब्राउज़र में सेवा यूआरएल देखने से एक लिंक दिखाता है जिसे डब्लूएसडीएल डाउनलोड करने के लिए इस्तेमाल किया जा सकता है।wsimport
मेरे लिए एक महत्वपूर्ण आवश्यकता बिना सेवा के सेवा सेवा को स्विच करने में सक्षम होना है। मुझे दिया गया यूआरएल स्पष्ट रूप से एक टेस्ट सर्वर है और मुझे पता है कि उत्पादन में मुझे उपयोग करने के लिए एक उत्पादन यूआरएल दिया जाएगा। मैं परीक्षण के लिए खुद को एक नकली सर्वर बनाने में सक्षम होना चाहूंगा, और सेवा में स्थानांतरित होने पर पुन: कंपाइल किए बिना भविष्य में एक नया यूआरएल निर्दिष्ट करने की क्षमता बनाए रखूंगा। वास्तव में, मैं विभिन्न यूआरएल पर webservice के एकाधिक उदाहरणों को तत्काल करने में सक्षम होने के लिए हमारे आवेदन की स्थापना करना चाहता हूं।
लेकिन मेरी धारणा मेरे साथ wsimport उपकरण क्या कर रही है के साथ मेल नहीं खाती है। f1sh के जवाब here के बाद, मैं अपने डाउनलोड की डबल्यूएसडीएल से जावा कोड उत्पन्न इस आदेश के साथ:
wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl
क्या मुझे लगता है कि उत्पन्न कोड मेरा डाउनलोड किया wsdlFile.wsdl है, जो सेवा URL होता है करने के लिए एक हार्डकोडेड संदर्भ है। हमारा एप्लिकेशन इस तरह से चलने वाला नहीं है कि इसे रनटाइम पर WSDL फ़ाइल को संपादित करके कॉन्फ़िगर किया जा सके। मुझे कोड बनाने की आवश्यकता है जो मेरे आवेदन में निर्माण समय पर संकलित है और तत्काल समय पर सेवा यूआरएल सेट हो सकता है।
मुझे पूरी तरह से यकीन नहीं है कि WSDL को रनटाइम पर भी पार्स करने की आवश्यकता क्यों है; यह मेरी समझ थी कि डब्ल्यूएसडीएल कोड उत्पन्न करने के लिए पर्याप्त जानकारी प्रदान करता है जो webservice तक पहुंच सकता है, इसलिए मुझे यकीन नहीं है कि यह सेवा यूआरएल के अलावा जेनरेट कोड को क्या प्रदान कर रहा है, और मुझे यकीन नहीं है कि सेवा यूआरएल क्यों उपलब्ध नहीं है जनरेटेड webservice वर्ग पर एक विधि के माध्यम से एक कन्स्ट्रक्टर या विन्यास योग्य। मेरा कुछ छूट रहा है।
इस परिदृश्य के लिए सामान्य अभ्यास क्या है? क्या अधिकांश लोग प्रत्येक व्यक्तिगत यूआरएल के लिए कोड पुन: उत्पन्न करते हैं जिसका उपयोग वे करने जा रहे हैं? रनटाइम पर कोड उत्पन्न होता है? क्या कोई और डब्लूएसडीएल उपकरण है जिसका उपयोग मैं कर सकता हूं जो कॉन्फ़िगर करने योग्य यूआरएल के साथ क्लाइंट कोड बनाएगा?