使用して
from twisted.web import soap, xmlrpc, resource, server
import os
def getQuote():
return "Victory to the burgeois, you capitalist swine!"
class XMLRPCQuoter(xmlrpc.XMLRPC):
def xmlrpc_quote(self):
return getQuote()
class SOAPQuoter(soap.SOAPPublisher):
def soap_quote(self):
return getQuote()
def main():
from twisted.internet import reactor
root = resource.Resource()
root.putChild('RPC2', XMLRPCQuoter())
root.putChild('SOAP', SOAPQuoter())
reactor.listenTCP(7080, server.Site(root))
reactor.run()
if __name__ == '__main__':
main()
「::1:0: 要素が見つかりません」と表示されます。トレースバックを見ると、この呼び出しが行われたときに例外が発生することがわかります
p, header, body, attrs = SOAPpy.parseSOAPRPC(data, 1, 1, 1)
別の twisteSOAP プログラムもテストしましたが、バージョン管理の問題があると思います。私はツイスト11.01で、ubuntu 12.04を使用しています。
おそらくpythonとxmlに関連するバージョンです。似たようなものを手に入れた人はいますか?
/usr/lib/python2.7/dist-packages/twisted/web/soap.py の 52 行目に次のコードを追加すると、
f = open('/tmp/nannata', 'w')
f.write(data)
f.close()
/tmp/nannata を調べると、ファイルが void であることがわかります。したがって、解析の問題は、おそらくこれを参照しました...