3

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

SOAPpy 呼び出しを suds に置き換えるだけです。

問題を更新しようとすると、次のようになりますが、例外があります。

 >>> 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'
 >>>

誰もこのような問題を見たことがありますか?

4

3 に答える 3

1

実際、ライブラリをsudsからSOAPpyに変更するだけで、他の変更を加えることなくすべてが機能し始めました。ちょっと迷惑です。SOAPpyは放棄されており、sudと比較してインストールが複雑であるように思われたため、SOAPpyをスキップしました。しかし、SOAPpyは機能します!

皆さんありがとう。

于 2009-10-26T00:13:31.717 に答える
1

何が送信されているかを確認するために詳細度を上げてみてはどうでしょうか? または、wireshark を使用します。SOAPpy でも同じことを行い、送信されたものを正確に比較することもできます。石鹸エラーのデバッグは、通常、私にとっては次のようなものです:-/

〜マット

于 2009-10-22T21:50:05.750 に答える
1

suds 3.0.9 (ベータ) に切り替えると、これは解決されます ... 唯一の修正プログラムです。

于 2010-02-17T17:06:33.007 に答える