Zope2 XML-RPC和AT Image mutator之间的交互不良?

时间:2011-10-17 23:26:28

标签: plone xml-rpc xmlrpclib transmogrifier

我正在创建一个demo for mr.migrator并遇到了一个恼人的问题,showcased here

# create image
proxy = xmlrpclib.ServerProxy(url) # reset
data = open('screenshot.png').read()
try:
    proxy.invokeFactory('Image', 'screenshot.png')
except xmlrpclib.ProtocolError:
    print sys.exc_info()[1]
except xmlrpclib.Fault:
    print "The id is invalid - it is already in use." # most likely
proxy = xmlrpclib.ServerProxy(url + '/screenshot.png')
proxy.setTitle('This is an image')
try:
    proxy.setImage(data) # XXX this fails
except:
    print sys.exc_info()[1]

此代码应使用图像中的数据填充图像字段,但它会与以下内容一致:

<ProtocolError for admin:admin@localhost:8080/Plone/screenshot.png: 500 Internal Server Error>

更糟糕的是,这是Zope2所说的全部。在前台运行Plone时,我没有看到任何表示问题的追溯或其他任何内容。

我的下一步是什么?你可以在这里查看并复制:

我会以“正常”方式执行此操作,并将关键字参数传递给invokeFactory,但XML-RPC does not support them

1 个答案:

答案 0 :(得分:2)

这很可能是一个特殊的字符错误。 xml-rpc协议可以使用允许您使用的任何字符XML。您应该尝试将图像数据包装在二进制包装器中:

wrappedData = xmlrpclib.Binary(open('screenshot.png').read())

更多信息: