WSDL

2010-01-14 12 views
6

का परीक्षण करने के लिए एसयूडीएस का उपयोग करना किसी को भी एक अच्छा एसयूडीएस ट्यूटोरियल के बारे में पता है। मैं डब्लूएसडीएल फाइलों पर परीक्षण चलाने की कोशिश कर रहा हूं और मुझे यह कैसे करना है इस पर कोई भी जानकारी खोजने में परेशानी हो रही है। क्या SUDS के लिए एसयूडीएस बहुत अलग है और क्या कोई इसे डब्लूएसडीएल फाइलों में संग्रहीत कार्यों पर धूम्रपान परीक्षण चलाने की सलाह देगा।WSDL

मैंने पढ़ा है कि SOAPAy अब Python 2.6+ में समर्थित नहीं है। क्या ये सच है?

in open 
    response = self._open(req, data) 
    File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 407, in _open 
    '_open', req) 
    File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 367, in _call_chain 
    result = func(*args) 
    File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 1146, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 
    File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib2.py", line 1121, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [Errno 111] Connection refused> 

क्या किसी को पता है कि क्यों यह हो रहा है:

from suds.client import Client 

client = Client('http://10.51.54.50/ptz.wsdl') 

client.service.GetNode() 

मैं यह त्रुटि आई:

मैं जो मैंने दर्ज किया WSDL फ़ाइल है?

मैं अपने ब्राउज़र के माध्यम से इस फ़ाइल से कनेक्ट कर सकता हूं। मैंने सभी सूड पैकेज स्थापित किए हैं। क्या कोई अन्य सेटअप आवश्यक है?

+0

'urlopen त्रुटि [errno 111] कनेक्शन refused' लगता है कि आप आईपी का उपयोग करने की अनुमति नहीं है हल किया। –

+0

नहीं, additonal सेटअप की आवश्यकता नहीं है। –

+0

क्या आप सूड आधारित परीक्षण ढांचे को विकसित करने में सक्षम थे? यदि हां, तो क्या आपके परिणाम में जूनिट प्रकार एक्सएमएल प्रारूप है? – kamal

उत्तर

15

सूड का उपयोग करना बहुत आसान है।

from suds.client import Client 

client = Client("http://example.com/foo.wsdl") 
client.service.someMethod(someParameter) 

someMethod एक विधि डबल्यूएसडीएल में वर्णित के रूप का नाम है।

2

कनेक्शन से इनकार कर दिया गया है कि सर्वर वहां नहीं है। क्या आप ब्राउज़र में या कर्ल के माध्यम से http://10.51.54.50/ptz.wsdl तक पहुंच सकते हैं? यदि नहीं, तो एसओएपी सेवा पहले चलकर शुरू करें फिर पुन: प्रयास करें।

2

मेरे मामले में यह एक बेवकूफ गलती थी (बस किसी भी अन्य बग की तरह)।

यूआरएल है कि मैं अपने सेवा प्रारंभ करने में इस्तेमाल किया था मैं एक अजगर सेवा के रूप में एक ही मशीन पर चल रहे ग्राहक से इस सेवा का उपयोग कर सकता है की तरह

Uri httpUri = new Uri("http://localhost:8000/CalculatorService"); 

कुछ था। मैं स्थानीय रूप से और दूरस्थ मशीन से ब्राउज़र से wsdl ब्राउज़र कर सकता था। हालांकि जब मैंने रिमोट मशीन से इस सेवा तक पहुंचने का प्रयास किया, तो मुझे कनेक्शन से इनकार कर दिया गया। अजीब बात यह थी कि तारों की दुकान में, मैं देख सकता था कि सेवा रिमोट क्लाइंट को wsdl वापस भेजती है। कुछ घंटों बर्बाद कर के बाद, मैं

logging.getLogger('suds.client').setLevel(logging.DEBUG) 
logging.getLogger('suds.transport').setLevel(logging.DEBUG) 
logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG) 
logging.getLogger('suds.wsdl').setLevel(logging.DEBUG) 

लॉगिंग सक्षम लॉग पता चला है कि झाग सर्वर से डाउनलोड किया wsdl लेकिन उसके बाद यह स्थानीय होस्ट से कनेक्ट करने की कोशिश की: 8000। और यह बताता है कि कनेक्शन ने त्रुटि से इंकार कर दिया। मैं सिर्फ

Uri httpUri = new Uri("http://192.168.0.1:8000/CalculatorService"); 

को WCF सर्वर पर यूआरआई बदल और वह मेरी समस्या

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