2009-10-22 3 views
3

저는 Python 2.6 및 suds 0.3.7을 사용하여 JIRA 4.0과 상호 작용합니다.Suds + JIRA = SAXException

JIRA 서버에 연결할 때 모든 문제에 대한 정보를 얻을 수 있습니다.

내가 문제를 업데이트 할 때, 나는 (아마도) 비눗물에서 SAXException를 얻을 :

WebFault : 서버 제기 오류 : org.xml.sax.SAXException : 내부 찾을 문자 데이터를 배열 요소 내가 여기에 설명 된 단계에 따라거야

를 deserialize하는 동안 :

http://confluence.atlassian.com/display/JIRA/Creating+a+SOAP+Client 만 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' 
>>> 

사람이 같은 문제를 본 적이 있습니까?

답변

1

suds 3.0.9 (베타)로 전환하면 해결할 수 있습니다. 수정 사항이있는 유일한 버전입니다.

1

보내지는 내용을 자세히 표시하려면 어떨까요? 또는 wireshark를 사용하십시오. SOAPpy를 사용하여 동일한 작업을 수행하고 전송 된 내용을 정확하게 비교할 수도 있습니다. 비누 오류를 디버깅하는 것은 나를 위해 일반적으로 다음과 같이이다 : -/

~ 마

+0

나는 soapy를 사용하여 결국 ... 좀 더 구성하는 것이었지만 훌륭하게 작동했습니다. – Chris

1

는 사실, 단지 SOAPpy에 비눗물에서 라이브러리를 변경하여, 모든 다른 수정 작업을 시작했다. 일종의 성가신 일. SOAPpy는 버려졌고 설치가 더 복잡해 보였으므로, SOAPpy를 건너 뛰었습니다. 하지만 SOAPpy가 작동합니다!

감사합니다.