我有一些 web 服务要测试,在axis2 中的服务器上运行。
我已经获得了一些我们应该使用我们的 web 服务从第三方接收的 xml 数据。该 xml 数据根据我们的 web 服务的 wsdl 格式正确。
为了测试我做:(按照suds中给出的axis2.py测试文件)
url = 'http://localhost:8080/axis2/services/{0}?wsdl'.format('myWebService')
print 'url=%s' % url
client = Client(url)
print client
with open("input.xml") as f:
inputXml = f.read()
print client.service.myWebserviceRequest(inputXml)
我收到以下错误消息:
urllib2.URLError: <urlopen error [Errno 10061] No connection could be made becau
se the target machine actively refused it>
据我在声明print Client
中看到的,suds 正在等待的对象不是 xml 形式,而是 python 形式。(这就是axis.py代码的其余部分所建议的)
但就我而言,我已经将数据格式化为 xml。你知道我如何将它作为 xml 直接输入到请求中client.service.myWebserviceRequest
吗?
(这不是连接问题,因为我访问的是axis2 webservice getVersion
)
EDIT1:的输出print client statement
。
Service ( myWebService ) tns="ws.myCompany.com"
Prefixes (2)
ns2 = "myData.ws.myCompany.com"
ns3 = "ws.myCompany.com"
Ports (1):
(MyServiceSSOAP12port_http)
Methods (1):
sendMyInformation(ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT, )
Types (1):
WSExceptionType
让我感到困惑的是,suds Client 暴露了表单的服务sendMyInformation((ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT,)
而在我的 wsdl 中,要提供的数据是:
<xs:element name="WHOLE_CONTENT">
<xs:complexType>
<xs:sequence>
<xs:element ref="DATA_HEADER"/>
<xs:element ref="OTHER_CONTENT"/>
</xs:sequence>
</xs:complexType>
</xs:element>