私はmr.migratorのデモを作成していて、ここで紹介されている厄介な問題に遭遇しました:
# 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はそれらをサポートしていません。