def aMeth(inParam, inoutParam) retVal = inParam + inoutParam outParam = inParam . inoutParam inoutParam = inParam * inoutParam return retVal, inoutParam, outParam end
现在,我们可以公开这个方法如下:
add_method(self, 'aMeth', [ %w(in inParam), %w(inout inoutParam), %w(out outParam), %w(retval return) ])
第4步 - 启动服务器:
最后一步是通过实例的派生类的一个实例,并调用start方法来启动服务器。
myServer = MyServer.new('ServerName',
'urn:ruby:ServiceName', hostname, port)
myServer.start
这是必需的参数的描述:

例如:
现在使用上述步骤,让我们写一个独立的服务器:
require "soap/rpc/standaloneserver"
begin
class MyServer < SOAP::RPC::StandaloneServer
# Expose our services
def initialize(*args)
add_method(self, 'add', 'a', 'b')
add_method(self, 'div', 'a', 'b')
end
# Handler methods
def add(a, b)
return a + b
end
def div(a, b)
return 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
执行时,服务器应用程序开始一个独立的SOAP服务在localhost上侦听8080端口的请求。它暴露了一个服务方法:add 和 div ,这需要两个参数并返回结果。
现在可以运行这个服务器后台如下:
$ ruby MyServer.rb&
编写SOAP4R客户端:
SOAP::RPC::Driver 类用于写入SOAP客户端应用程序提供支持。本教程将介绍这个类,显示其使用的应用程序的基础。
以下是最低要求的信息,需要调用SOAP服务:
SOAP服务(SOAP端点URL) service方法(方法命名空间URI) service方法的名称及其参数现在我们将编写一个SOAP客户端调用服务定义的方法在上面的例子名称为add和div。
以下是主要的步骤来创建一个SOAP客户端:
步骤1 - 创建一个SOAP驱动程序实例:
我们创建一个实例 SOAP::RPC::Driver 通过调用 new 方法如下:
SOAP::RPC::Driver.new(endPoint, nameSpace, soapAction)
这是必需的参数的描述:

第2步 - 添加服务的方法:
要添加到SOAP SOAP服务方法到 SOAP::RPC::Driver 我们可以调用下面的方法使用 SOAP::RPC::Driver 实例:
driver.add_method(name, *paramArg)
下面的参数说明:










