2013-04-08 9 views
6

कैसे कर सकते हैं मैं endpoint पता सेट गतिशीलWSO2 ESB: गतिशील रूप से परिवर्तित ENDPOINT ADDRESS

मैं रन समय में एक संपत्ति के लिए endpoint पता सेट और अंत बिंदु का पता के URI को बदलने के लिए साथ यह मूल्य है की जरूरत है।

मैं इस मूल्य के साथ पते का यूआरआई मूल्य कैसे सेट कर सकता हूं?

उत्तर

1

header mediator का उपयोग अपने निर्दिष्ट संपत्ति से निकाले गए मान के साथ "टू" पता शीर्षलेख सेट करने के लिए करें।

+0

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

2

शीर्षलेख "" करने के लिए शीर्षलेख मध्यस्थ का उपयोग करें और डिफ़ॉल्ट एंडपॉइंट का उपयोग करें .. नमूना के लिए this post देखें।

+0

वह नमूना मेरे लिए काम किया! इसे बनाने के लिए मैंने किया एकमात्र परिवर्तन शीर्ष पर और टैग को निकालना था, और उन्हें नीचे टैग के अंदर जोड़ें। यह इस तरह दिखेगा: <हेडर xmlns: m1 = "http: //services.samples/xsd" xmlns: m0 = "http: //services.samples" name = "to" अभिव्यक्ति = "fn: concat (get get -property ('सर्वर'), मिल-संपत्ति ('सेवा')) "/> lsantsan

0

जब सर्वर अपना डब्लूएसडीएल प्रकाशित नहीं करता है, तो मायोबिस टिप्पणी here देखें। सफलता के बिना addPort कोशिश की।

3

आप फिर अंत बिंदु 'MyEndpoint' सेट गुण .. गुण, कि समाप्ति बिंदु uri से आरंभ होने चाहिए के लिए पार्स किया जा सकता कॉल करने से पहले

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="MyEndpoint"> 
    <http uri-template="{uri.var.full}?f={uri.var.f}{+uri.var.extra}" method="put"> 
    </http> 
</endpoint> 

की तरह अपने अंतिम बिंदु बना सकते हैं।

मुझे यह भी पता चला कि अगर आप संपत्ति के नाम से पहले एक + डालते हैं, तो यह यूआरआई एन्कोड नहीं करता है, इसलिए यह फ्लाई पर पैरामीटर बनाने के लिए आसान है .. अन्यथा ज्ञात पैरामीटर के लिए, आप ऊपर की तरह कर सकते हैं paramameter च

तो ..

<property name="uri.var.full" value="http://jarhedz.com/viewtopic.php"/> 
<property name="url.var.f" value="2"/> 
<property name="uri.var.extra" value="&t=39"/> 
<send> 
    <endpoint key="MyEndpoint"></endpoint> 
</send> 

की तरह कुछ यूआरएल http://jarhedz.com/viewtopic.php?f=2&t=39

(Btw सिर्फ एक नोट के रूप में, आप वेब संपादक का उपयोग कर रहे हैं, इसके बारे में शिकायत करेंगे पर ले जाना चाहिए & .. इसकी छोटी गाड़ी ए रों नरक .. के रूप में

&amp; 

इसे बचा .. और कहा कि & रूप में सहेजता है या संपत्ति जावास्क्रिप्ट का उपयोग)

+0

यूआरआई http नहीं है, तो? –

0

इस विधि सही ढंग से मेरे लिए काम किया है की स्थापना की।

मैं अंत बिंदु यूआरएल अंदर bellow गतिशील यूआरएल

http://localhost:8787/ {गतिशील पैरामीटर}

बनाने की जरूरत इस

http://localhost:8787/ {uri.var की तरह है। सर्विसपैथ}

सेट करें "परीक्षण" मेरे गतिशील पैरामीटर के रूप में चर (यदि आपको अभिव्यक्ति मान सेट करने की आवश्यकता है)। संपत्ति मध्यस्थ के अंदर "परीक्षण" मूल्य सेट करें।(इस insideproxy सेवा मैंने किया था) endpoint

<property name="uri.var.servicepath" scope="default" type="STRING" value="test"/> 

बनाने

यहाँ मैं HTTP अंतिम बिंदु बनाया

<endpoint name="ServiceEP" xmlns="http://ws.apache.org/ns/synapse"> 
    <http method="post" uri-template="http://localhost:8787/{uri.var.servicepath}"/> 
</endpoint> 

फिर अपने प्रॉक्सी सेवा या एपीआई के अंदर इस endpoint जोड़ने

<send> 
    <endpoint key="ServiceEP"/> 
</send> 

अंत में आपकी प्रॉक्सी इस

की तरह दिखती है

: http: // {uri.var.hostname}: {uri.var.port}/{uri.var.servicepath 10

<inSequence> 
    <property name="uri.var.servicepath" scope="default" type="STRING" 
    value="test"/> 

    <send> 
     <endpoint key="SurepayVASAppsEP"/> 
    </send> 
</inSequence> 

इस तरह आप हर यूआरएल parameter.Ex- बदल सकते हैं }

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