在尝试使用Ruby设置webservice设置后,我遇到了xmlparser的问题。我认为 - 这是常见的问题(例如Ruby soap4r wsdl2ruby.rb errors),但它的解决方案,无论多么简单,对我来说都不成功。
我正在尝试运行从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,...)
之后答案 0 :(得分:0)
回答自己:这个片段不完整。超级构造函数调用缺乏。添加:
super(args[0], args[1], args[2], args[3])
将使一切顺利