SOAP及Web Services

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

我们可以通过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

.......





相关文章
|
4月前
|
前端开发 JavaScript API
阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
【1月更文挑战第15天】【1月更文挑战第72篇】阿里云智能媒体服务IMS(Intelligent Media Services)的视频剪辑Web SDK
63 6
|
XML Java 数据格式
大多数人忽略了的Spring官方项目,Spring Web Services
大多数人忽略了的Spring官方项目,Spring Web Services
1006 0
|
2月前
|
XML 安全 数据安全/隐私保护
探索 SOAP:揭开 Web 服务的神秘面纱(下)
探索 SOAP:揭开 Web 服务的神秘面纱(下)
|
2月前
|
XML 开发框架 JSON
探索 SOAP:揭开 Web 服务的神秘面纱(上)
探索 SOAP:揭开 Web 服务的神秘面纱(上)
|
8月前
|
弹性计算 安全 数据安全/隐私保护
Internet Information Services(IIS)部署Web项目
本文为您介绍如何快速使用IIS搭建简单网站并发布项目。
271 0
|
XML 缓存 JSON
REST vs SOAP:两种 Web 服务协议的分析
REST(Representational State Transfer)和 SOAP(Simple Object Access Protocol)都是 Web 服务架构的两种主要风格。两者都提供了一种通信方式,可以让不同的应用程序通过网络互相交换数据。但是,它们之间有一些重要的区别。
|
Java Linux API
Java:ews-java-api获取Exchange Web Services (EWS)会议日程
Java:ews-java-api获取Exchange Web Services (EWS)会议日程
499 0
|
XML JavaScript 网络协议
WEB SERVICE名词解释 JSWDL开发包的介绍 JAXP、JAXM的解释 SOAP、UDDI,WSDL解释。
Web ServiceWeb Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
71 0
|
XML 网络协议 JavaScript
Web Services:重整山河待后生
Web Services:重整山河待后生
137 0
Web Services:重整山河待后生
|
监控 Java 区块链
如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service
252 0
如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service