作成したSOAP-RPCサーバのクライアントサンプルは次のようになります。
require 'soap/wsdlDriver'
require 'uri'
require 'nkf'
lovm = SOAP::WSDLDriverFactory.new('http://localhost/lovemac.wsdl').create_rpc_driver
lovm.generate_explicit_type = true
if lovm.serviceStart
result = lovm.getItemInfoByPrice(1980)
result.each do | r |
puts "#{r.name}:#{r.price)}"
end
lovm.serviceEnd
else
puts "connect error!"
end
lms.disconn
SOAP::WSDLDriverFactoryでは作成したwsdlを指定しています。wsdlはスクリプトがアクセス可能な場所に配置してあればどこにあってもかまいません。
サンプルでは、価格が1980以上の商品を検索しリストしています。ここで、resultは先にwsdlで定義したItemInfoResultオブジェクトの配列ItemInfoResultArrayです。