SOAP及Web Services

我们可以通过SOAP服务器来访问预先定义好的对象,通过soap/rpc/driver就可做到,这也可以看作是同其他语言交互的一种很好的方式,服务器端存为server.rb


require 'soap/rpc/standaloneServer'

class InterestCalculator
  attr_reader :call_count
  def initialize
    @call_count=0
  end
  def compound(printcipal,rate,freq,years)
    @call_count+=1
    printcipal*(1.0+rate/freq)**(freq*years)
  end
end

NS='http://pragprog.com/InterestCalc'
class Server2<SOAP::RPC::StandaloneServer
  def on_init
    calc=InterestCalculator.new
    add_method(calc,'compound','printcipal','rate','freq','years')
    add_method(calc,'call_count')
  end
end
svr=Server2.new('Calc',NS,'0.0.0.0',12321)
trap('INT'){svr.shutdown}
svr.start


客户端代码存为client.rb
require 'soap/rpc/driver'
proxy=SOAP::RPC::Driver.new("http://localhost:12321","http://pragprog.com/InterestCalc")
proxy.add_method('compound','principle','rate','freq','years')
proxy.add_method('call_count')
puts "Call count: #{proxy.call_count}"
puts "5 years,compound annually: #{proxy.compound(100,0.06,1,5)}"
puts "5 years,compound monthly: #{proxy.compound(100,0.06,12,5)}"
puts "Call count: #{proxy.call_count}"

我们在服务器端输入

% ruby server.rb

以打开服务器

客户端中输入

%ruby client.rb

会显示

Call count:0

5 years,compound annually:133.8225776

.......





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值