我正在使用Python 2.6和suds 0.3.7与JIRA 4.0进行交互。
当我连接到JIRA服务器时,我可以获得有关所有问题的信息。
然而,当我想更新一个问题时,我从suds得到一个SAXException(大概):
WebFault:服务器引发的错误: org.xml.sax.SAXException:在反序列化时在数组元素中找到字符数据
我正在按照此处描述的步骤进行操作:http://confluence.atlassian.com/display/JIRA/Creating+a+SOAP+Client
仅用suds替换SOAPpy调用。
我尝试更新问题的方法如下:完成例外情况:
>>> w="http://bugs/rpc/soap/jirasoapservice-v2?wsdl"
>>> from suds.client import Client
>>> client = Client(w)
>>> auth = client.service.login("myname","mypass")
>>> issue = client.service.getIssue(auth,"BUG-30112")
>>> issue.summary
This is the original summary for BUG-30112
>>>
>>> client.service.updateIssue(auth,"BUG-30112",[
... {"id":"summary","values":["My new summary"]}])
Traceback (most recent call last):
File "<interactive input>", line 2, in <module>
File "C:\Python26\lib\suds\client.py", line 535, in __call__
return client.invoke(args, kwargs)
File "C:\Python26\lib\suds\client.py", line 595, in invoke
result = self.send(msg)
File "C:\Python26\lib\suds\client.py", line 630, in send
result = self.failed(binding, e)
File "C:\Python26\lib\suds\client.py", line 681, in failed
r, p = binding.get_fault(reply)
File "C:\Python26\lib\suds\bindings\binding.py", line 235, in get_fault
raise WebFault(p, faultroot)
WebFault: Server raised fault: 'org.xml.sax.SAXException: Found character data inside an array element while deserializing'
>>>
有没有人见过这样的问题?
答案 0 :(得分:1)
如何增加详细程度以查看发送的内容?或者使用wireshark。您也可以对SOAPpy执行相同的操作,并准确比较发送的内容。调试soap错误对我来说通常是这样的: - /
〜马特
答案 1 :(得分:1)
实际上,只需将库从suds更改为SOAPpy,一切都开始工作,没有其他修改。有点烦人。我跳过了SOAPpy,因为与suds相比,它似乎已被放弃并且安装起来更复杂。但是SOAPpy有效!
谢谢,所有。
答案 2 :(得分:1)
如果你切换到suds 3.0.9(beta)......这是唯一一个有修复的人,这将会解决。