aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/lib/action_web_service/client/soap_client.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionwebservice/lib/action_web_service/client/soap_client.rb')
-rw-r--r--actionwebservice/lib/action_web_service/client/soap_client.rb12
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