Python SUDS错误-SAXParseException
有人知道为什么当响应如下所示时,我会从python suds调用中得到一个Python SUDS错误-SAXParseException,python,soap,Python,Soap,有人知道为什么当响应如下所示时,我会从python suds调用中得到一个“:1:0:syntax error” <?xml version='1.0' encoding='UTF-8'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Body> <external.bz1:reply xmlns:abn.types="uri:abn.type
“:1:0:syntax error”
<?xml version='1.0' encoding='UTF-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<external.bz1:reply xmlns:abn.types="uri:abn.types.asic.gov.au" xmlns:bn.types="uri:bn.types.asic.gov.au" xmlns:business.document.header.types="uri:business.document.header.types.asic.gov.au" xmlns:external.bz1="uri:external.bz1.asic.gov.au" xmlns:fss.types="uri:fss.types.asic.gov.au" xmlns:types="uri:types.asic.gov.au">
<business.document.header.types:businessDocumentHeader>
<business.document.header.types:messageType>bnLodgeApplication</business.document.header.types:messageType>
<business.document.header.types:messageReferenceNumber>1</business.document.header.types:messageReferenceNumber>
<business.document.header.types:messageVersion>1</business.document.header.types:messageVersion>
<business.document.header.types:senderId>ASIC</business.document.header.types:senderId>
<business.document.header.types:senderType>GOVT</business.document.header.types:senderType>
<business.document.header.types:messageEvents>
<business.document.header.types:messageEvent>
<business.document.header.types:errorCode>00007</business.document.header.types:errorCode>
<business.document.header.types:serverityCode>Error</business.document.header.types:serverityCode>
<business.document.header.types:description>Message previously processed but no valid reponse is available</business.document.header.types:description>
</business.document.header.types:messageEvent>
</business.document.header.types:messageEvents>
</business.document.header.types:businessDocumentHeader>
</external.bz1:reply>
</env:Body>
</env:Envelope>
bnLodgeApplication
1.
1.
专用集成电路
政府
00007
错误
消息之前已处理,但没有可用的有效响应
以下是堆栈跟踪:
Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/django_projects/ecr/businessNames/views.py" in externalBz1
19. result = doExternalBz1(test)
File "/django_projects/ecr/businessNames/models.py" in doExternalBz1
75. result = client.service.externalBz1(header, body)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in __call__
542. return client.invoke(args, kwargs)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in invoke
602. result = self.send(soapenv)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in send
643. result = self.succeeded(binding, reply.message)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py" in succeeded
678. reply, result = binding.get_reply(self.method, reply)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/bindings/binding.py" in get_reply
145. replyroot = sax.parse(string=reply)
File "/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/sax/parser.py" in parse
136. sax.parse(source)
File "/usr/lib/python2.6/xml/sax/expatreader.py" in parse
107. xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.6/xml/sax/xmlreader.py" in parse
123. self.feed(buffer)
File "/usr/lib/python2.6/xml/sax/expatreader.py" in feed
211. self._err_handler.fatalError(exc)
File "/usr/lib/python2.6/xml/sax/handler.py" in fatalError
38. raise exception
Exception Type: SAXParseException at /businessNames/externalBz1/1/
Exception Value: <unknown>:1:0: syntax error
回溯:
get_响应中的文件“/usr/local/lib/python2.6/dist packages/django/core/handlers/base.py”
111响应=回调(请求,*回调参数,**回调参数)
externalBz1中的文件“/django_projects/ecr/businessNames/views.py”
19结果=doExternalBz1(测试)
doExternalBz1中的文件“/django_projects/ecr/businessNames/models.py”
75结果=client.service.externalBz1(头、体)
调用中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”__
542返回client.invoke(args、kwargs)
invoke中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”
602结果=self.send(soapenv)
send中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/client.py”
643结果=self.successed(绑定、回复、消息)
文件“/usr/local/lib/python2.6/dist-packages/suds-0.4-py2.6.egg/suds/client.py”成功导入
678reply,result=binding.get\u reply(self.method,reply)
get_回复中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/bindings/binding.py”
145replyroot=sax.parse(string=reply)
解析中的文件“/usr/local/lib/python2.6/dist packages/suds-0.4-py2.6.egg/suds/sax/parser.py”
136parse(源代码)
解析中的文件“/usr/lib/python2.6/xml/sax/expatreader.py”
107IncrementalParser.parse(self,source)
解析中的文件“/usr/lib/python2.6/xml/sax/xmlreader.py”
123自进给(缓冲区)
提要中的文件“/usr/lib/python2.6/xml/sax/expatreader.py”
211self.\u err\u handler.fatalError(exc)
fatalError中的文件“/usr/lib/python2.6/xml/sax/handler.py”
38引发异常
异常类型:SAXParseException at/businessNames/externalBz1/1/
异常值::1:0:语法错误
这是直接从日志中得到的,没有提到解析错误:(
有什么想法吗
干杯,
Ben我没有直接传递结果,而是执行了以下操作,从而消除了错误
sax = suds.sax.parser.Parser()
s_received = str(client.last_received()) # passed "client.last_received()", no error
s_parse = sax.parse(string=s_received)
而不是像:
x_request = eval(client.service.ListTestAccounts)
result = x_request("1")
sax = suds.sax.parser.Parser()
s_result = str(result) # passed "result", generated error
s_parse = sax.parse(string=s_result)
希望这能有所帮助。XML显然是有效的。你确定这是SAXParseException吗?发布堆栈跟踪以显示这一点。我唯一的建议是,传递给解析器的内容与你发布的内容不完全相同。缓冲区开头的额外空白可能会导致这一点。我完全不知道……我粘贴的内容就是显示的内容正在将日志文件中的缓冲区作为接收到的缓冲区。在解析响应之前,是否需要删除额外的空格?是否可以在调试器中运行代码以验证缓冲区内容?