在尝试使用Ruby设置webservice设置后,我遇到了xmlparser的问题。正如我所看到的,这是一个常见的问题(例如Ruby soap4r wsdl2ruby。),但它的解决方案,无论多么简单,对我来说都不成功。
我试图运行代码取自http://www.tutorialspoint.com/ruby/ruby_web_services.htm几乎没有纠正(信号字符串没有封闭的撇号)。我首先使用
安装soap4r$ gem install soap4r --include-dependencies
和固定的xmlparser。rb: 66
c.to_s.downcase == name
代码:require "soap/rpc/standaloneserver"
begin
class MyServer < SOAP::RPC::StandaloneServer
# Expose our services
def initialize(*args)
add_method(self, 'add', 'a', 'b')
add_method(self, 'div', 'a', 'b')
end
# Handler methods
def add(a, b)
return a + b
end
def div(a, b)
return a / b
end
end
server = MyServer.new("MyServer",
'urn:ruby:calculation', 'localhost', 8080)
trap('INT'){
server.shutdown
}
server.start
rescue => err
puts err.message
end
不幸的是,这个仍然不起作用。它给我一个错误:
undefined method `add_rpc_operation' for nil:NilClass
调用add_method(self,…)后
回答自己:这个片段是不完整的。缺少超级构造函数调用。添加:
super(args[0], args[1], args[2], args[3])