我试图通过
XML-RPC导出
Ruby框架.但是,当尝试从未直接添加为XML-RPC服务器的处理程序的类调用方法时,我遇到了一些问题.请看下面的例子:
我有一个测试Ruby XML-RPC服务器如下:
require "xmlrpc/server" class ExampleBar def bar() return "hello world!" end end class ExampleFoo def foo() return ExampleBar.new end def test() return "test!" end end s = XMLRPC::Server.new( 9090 ) s.add_introspection s.add_handler( "example",ExampleFoo.new ) s.serve
我有一个测试Python XML-RPC客户端,如下所示:
import xmlrpclib s = xmlrpclib.Server( "http://127.0.0.1:9090/" ) print s.example.foo().bar()
我希望python客户端打印“hello world!”因为它相当于以下ruby代码:
example = ExampleFoo.new puts example.foo().bar()
但是它会生成错误:“xmlrpclib.ProtocolError:< ProtocolError for 127.0.0.1:9090/:500 Internal Server Error>”.
print s.example.test()工作正常.
我不希望新的ExampleBar对象通过网络,但我希望它是’缓存’服务器端,随后调用bar()将被尊重.
所以我想我的问题确实是;我怎样才能使这个工作,如果不是与XML-RPC有什么关系?