如何使用Ruby生成WSDL?

时间:2009-03-01 11:55:15

标签: ruby wsdl

我开始使用Ruby和Soap并提出了一些问题:

如何为我创建的服务生成WSDL文件?    它是否与.NET客户端兼容?


begin
   class MyServer < SOAP::RPC::StandaloneServer
         # Handler methods
      def add(a, b)
         return a + b
      end
      def div(a, b)
         return a / b
      end

      # Expose our services
      def initialize(*args)
         add_method(self, 'add', 'a', 'b')
         add_method(self, 'div', '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

1 个答案:

答案 0 :(得分:4)

ActionWebService(以前在Rails核心中,现在是一个gem)具有生成WSDL文件的工具。即使您没有在Rails中运行服务,也可以使用这些工具。

http://www.datanoise.com/articles/2008/7/2/actionwebservice-is-back

至于它是否适用于.NET客户端,答案可能是。许多.NET客户端似乎都期望微软的“扩展”SOAP信息,默认情况下.NET webservices提供这些信息。如果客户端也能够使用没有额外内容的服务,那么肯定。

更新#1

以上链接似乎不再起作用。但是,有一些ActionWebService的分支已经在github上弹出。你可以看到一个非常好的列表here。以下是一些关键版本的链接: