從 PL/SQL 中調用 ROR 创建的 Web 服务

本文详细介绍如何使用Rails 2.0及以上版本和ActionWebService插件创建Web服务,包括插件安装、项目配置、API定义及控制器设置等关键步骤。

參考:ActionWebService例子及相关
http://luoping0425.iteye.com/blog/432572

1. rails 2.0以上版本下载actionwebservice插件。
http://github.com/datanoise/actionwebservice

2. 放到项目的vendor/plugins目录下

3. 配置config/environment.rb
a.在 Rails::Initializer.run do |config|...end之前加入:
  class Rails::Configuration
   attr_accessor :action_web_service
  end
b.在 Rails::Initializer.run do |config|...end之间加入:
  config.frameworks += [ :action_web_service] 
  config.action_web_service = Rails::OrderedOptions.new 
  config.load_paths += %W( #{RAILS_ROOT}/app/apis #{RAILS_ROOT}/vendor/plugins/actionwebservice/lib)
c.在 Rails::Initializer.run do |config|...end之后加入: 
  require 'action_web_service'
 
4.app下新建目录:apis

5.在app/apis下新建文件:person_api.rb:
class PersonApi < ActionWebService::API::Base 
  inflect_names false 
  api_method :add, :expects => [:string], :returns => [:int] 
  api_method :remove, :expects => [:int], :returns => [:bool] 
end 

6.在controller里新建person_controller.rb:
class PersonController < ActionController::Base
  protect_from_forgery  .....# 如果application.rb里有就需要加上
  layout "invoke"
  web_service_api PersonApi
  web_service_scaffold :invoke

  def add
    return 1
  end

  def remove   
  end
end

7. views下新建目录:person/invoke

8.将\vendor\plugins\actionwebservice\lib\action_web_service\templates\scaffolds下的methods.erb,parameters.erb, result.erb放到新建的目录下。

9.将layout.erb改名为invoke.erb放到views/layouts下。

10.vendor\plugins\actionwebservice\lib\action_web_service\scaffolding.rb的render_invocation_scaffold方法:
if self.active_layout.nil?
                render :file => scaffold_path("layout")
              else
                render :file => self.active_layout
              end
改为:
if self.active_layout.nil?
                render :file => scaffold_path("layout")
              else
                render :template => self.active_layout
              end


8. 重启服务,在浏览器中输入:http://localhost:3000/person/invoke,出现方法列表,ok!  
$ ruby script/server -p 8080
显示 方法列表:
http://172.18.60.39:8080/person/invoke
显示 Web 服务的 WSDL 文件:
http://172.18.60.39:8080/person/wsdl

==========================================================================================================
其他參考:
用 Ruby on Rails 和 Action Web Service 创建 Web 服务
http://www.ibm.com/developerworks/cn/opensource/os-ws-rubyrails/index.html
linux actionwebservice 创建WEB服务
http://hi.baidu.com/tlbfpx/blog/item/217d7a361c0b66d4a2cc2b46.html

 

==========================================================================================================

從 PL/SQL 中調用 ROR 创建的 Web 服务

代碼見附件.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值