diff options
Diffstat (limited to 'actionwebservice/lib/action_web_service/client/soap_client.rb')
-rw-r--r-- | actionwebservice/lib/action_web_service/client/soap_client.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/actionwebservice/lib/action_web_service/client/soap_client.rb b/actionwebservice/lib/action_web_service/client/soap_client.rb index f5ebe1629c..c7f3b9d594 100644 --- a/actionwebservice/lib/action_web_service/client/soap_client.rb +++ b/actionwebservice/lib/action_web_service/client/soap_client.rb @@ -80,12 +80,20 @@ module ActionWebService # :nodoc: if expects expects.each do |type| type_binding = @protocol.marshaler.lookup_type(type) - param_def << ['in', type.name, type_binding.mapping] + if SOAP::Version >= "1.5.5" + param_def << ['in', type.name.to_s, [type_binding.type.type_class.to_s]] + else + param_def << ['in', type.name, type_binding.mapping] + end end end if returns type_binding = @protocol.marshaler.lookup_type(returns[0]) - param_def << ['retval', 'return', type_binding.mapping] + if SOAP::Version >= "1.5.5" + param_def << ['retval', 'return', [type_binding.type.type_class.to_s]] + else + param_def << ['retval', 'return', type_binding.mapping] + end end driver.add_method(qname, action, method.name.to_s, param_def) end |