As I'm not a SOAPpy expert, I'd address the problem on another level:
why don't you try SUDS? I'm not familiar with the service you're using,
but it seemed to me, that SUDS is capable of sending your sample request.

>>> from suds.client import Client
>>> c = 
Client("http://211.137.45.104:9006/LnXxtCpInterface/services/LNXxtSyncService?wsdl";)
>>> c.service.sendMt(['a','b'])

You can fetch SUDS either from its homepage (https://fedorahosted.org/suds/),
or using easy_install. If you run into problems while using SUDS, you can
either try here, or on the SUDS mailing list:
https://lists.fedoraproject.org/mailman/listinfo/suds

Regards,
András Veres-Szentkirályi

2011. november 25. péntek 05:53:42 dátummal 贾晓磊 ezt írta:
> hi, all:
> 
> ask for help.
> 
> first of all, i will admire i am a novice to soap.
> using some helps from documents and blog, i set up some server-client
> successfully, while some are failed.
> 
> when use a remote webservice as follow, it failed, please someone can give
> a help...
> 
> >>> from SOAPpy import WSDL
> >>> url = "
> 
> http://211.137.45.104:9006/LnXxtCpInterface/services/LNXxtSyncService?wsdl";
> 
> >>> server = WSDL.Proxy(url)
> 
> /usr/lib/pymodules/python2.6/SOAPpy/wstools/XMLSchema.py:2871:
> DeprecationWarning: object.__init__() takes no parameters
>   tuple.__init__(self, args)
> 
> >>> server = WSDL.Proxy(url)
> >>> server.methods.keys()
> 
> [u'sendMo', u'syncResponseRpt', u'sendMt', u'syncStaff', u'syncCorp']
> 
> >>> server.methods['sendMt']
> 
> <SOAPpy.wstools.WSDLTools.SOAPCallInfo instance at 0xeb9ab8>
> 
> >>> server.methods['sendMt'].inparams
> 
> [<SOAPpy.wstools.WSDLTools.ParameterInfo instance at 0xeb9b00>]
> 
> >>> server.methods['sendMt'].inparams[0].type
> 
> (u'service.global.v1_0.wsdl.protocol.xxt', u'ArrayOf_soapenc_string')
> 
> >>> server.methods['sendMt'].inparams[0].name
> 
> u'mtInfo'
> 
> >>> server.methods['sendMt'].outparams[0].name
> 
> u'sendMtReturn'
> 
> >>> server.methods['sendMt'].outparams[0].type
> 
> (u'http://schemas.xmlsoap.org/soap/encoding/', u'string')
> 
> >>> server.sendMt(['a','b'])
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/usr/lib/pymodules/python2.6/SOAPpy/Client.py", line 470, in
> __call__
>   return self.__r_call(*args, **kw)
>   File "/usr/lib/pymodules/python2.6/SOAPpy/Client.py", line 492, in
> __r_call
>   self.__hd, self.__ma)
>   File "/usr/lib/pymodules/python2.6/SOAPpy/Client.py", line 406, in __call
>   raise p
> SOAPpy.Types.faultType: <Fault soapenv:Server.generalException: :
> <SOAPpy.Types.structType detail at 13700416>: {'fault':
> <SOAPpy.Types.structType multiRef at 13700272>: {'text': 'SoapHeader is
> null', 'messageId': 'SEV_0003'}, 'exceptionName':
> 'xxt.protocol.obj.v1_0.common.ServiceException', 'hostname':
> 'ln_xxt_mh01'}>
> 
> #NOTE:
> 1: the url "
> http://211.137.45.104:9006/LnXxtCpInterface/services/LNXxtSyncService?wsdl";
> is okay, you can have a test!
> 
> 2: the inparams:
> >>> server.methods['sendMt'].inparams[0].type
> 
> (u'service.global.v1_0.wsdl.protocol.xxt', u'ArrayOf_soapenc_string')
> 
> in java program language, it just means String[], ie, a array with items of
> String.
> in my view, in python , it can be replaced by ['a','b','c'] or
> ('a','b','c'), ie, a list or tuple
> 3: i am a chinese, and the first time to ask question in the maillist, so
> point the unfits or mistakes casually.
> 
> -- jia xiaolei
_______________________________________________
Soap mailing list
[email protected]
http://mail.python.org/mailman/listinfo/soap

Reply via email to