2

我需要在我的 Rails 应用程序上安装 SOAP Web 服务。(这是用于 Quickbooks 集成,QB Web 连接器希望您拥有 Web 服务:(

我尝试了 dnordberg 的 actionwebservice gem (gem 'actionwebservice', :git => "git://github.com/dnordberg/actionwebservice.git"),它是原始 data-noise/actionwebserice gem 的 Rails 3 端口。

由于我是 RoR 的相对新手(虽然不是编程),所以我不太确定其他缺少的步骤是什么。我已经添加了上面的 actionwebservice gem 和 SOAP4R (github.com/felipec/soap4r.git)

宝石文件

gem 'soap4r', :git => 'git://github.com/felipec/soap4r.git'
gem 'actionwebservice', :git => 'https://github.com/dnordberg/actionwebservice.git'

并按照此处的说明进行操作:http: //www.ibm.com/developerworks/opensource/library/os-ws-rubyrails/index.html

但我就是无法让 Web 服务正常工作。我不断收到路线错误。(显然 rails 还没有将其识别为 WS,因此正在寻找合适的控制器路由?)。

No route matches [GET] "/hello_message/wsdl"

对于http://localhost:3000/hello_message/wsdl

任何人都可以快速了解 rails 3.x 所需的步骤吗?谢谢!

ps:rails g web_service也不行

4

3 回答 3

2

我一直在研究 ActionWebService 的一个分支,并为 Rails 3.1.x 修复了这个问题,以及一些脚手架问题。你可以在http://github.com/livestation/actionwebservice找到我的 fork

请密切注意它,因为我将在下周左右添加更多修复(例如“无法将 SOAP::Mapping::SOAPException 映射到 SOAP/OM。”在使用脚手架时出现异常时出现的错误生成代码。)

当前的一个警告是,您需要将 log_error(message) 函数添加到您已分配为 web 服务控制器的控制器中,因为我还没有将它添加到 gem 中。

不要忘记将acts_as_web_service调用添加到您的控制器中以将它们连接在一起,因为原始文档中没有提到这一点。

[编辑] 忘了提我正在使用这个版本的 SOAP4r https://github.com/spox/soap4r-spox

期待您的评论

于 2011-12-10T20:48:19.870 回答
0

您是否尝试过向 routes.rb 添加新路由?

match "/hello_message/wsdl" => "hello_message#wsdl"

Rails3 对定义所有路由更加严格

http://guides.rubyonrails.org/routing.html

于 2011-10-24T13:59:03.313 回答
0

我需要将以下内容添加到我的 routes.rb 中:

  get "hello_message/wsdl"
  post "hello_message/api"
于 2011-12-13T20:54:13.993 回答