Changeset 1574
- Timestamp:
- 07/14/05 21:46:02 (3 years ago)
- Files:
-
- trunk/lib/soap/wsdlDriver.rb (modified) (1 diff)
- trunk/lib/wsdl/param.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/body.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/cgiStubCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/clientSkeltonCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/driverCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/methodDefCreator.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/standaloneServerStubCreator.rb (modified) (1 diff)
- trunk/lib/wsdl/xmlSchema/importer.rb (modified) (1 diff)
- trunk/sample/soap/ssl/sslclient_with_clientauth.rb (modified) (1 diff)
- trunk/test/wsdl/any/expectedDriver.rb (modified) (2 diffs)
- trunk/test/wsdl/any/expectedService.rb (modified) (2 diffs)
- trunk/test/wsdl/rpc/test_rpc_lit.rb (modified) (3 diffs)
- trunk/test/wsdl/simpletype/rpc/expectedClient.rb (modified) (1 diff)
- trunk/test/wsdl/simpletype/rpc/expectedDriver.rb (modified) (2 diffs)
- trunk/test/wsdl/simpletype/rpc/expectedService.rb (modified) (2 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/expectedClient.rb (modified) (1 diff)
- trunk/test/wsdl/soap/wsdl2ruby/expectedDriver.rb (modified) (2 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/expectedService.cgi (modified) (2 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/expectedService.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/wsdlDriver.rb
r1566 r1574 102 102 opt = {} 103 103 opt[:request_style] = opt[:response_style] = op_bind.soapoperation_style 104 opt[:request_use] = (op_bind.input.soapbody.use || 'literal').intern105 opt[:response_use] = (op_bind.output.soapbody.use || 'literal').intern104 opt[:request_use] = op_bind.input.soapbody_use 105 opt[:response_use] = op_bind.output.soapbody_use 106 106 if op_bind.soapoperation_style == :rpc 107 107 drv.add_rpc_operation(op_name, soapaction, name, param_def, opt) trunk/lib/wsdl/param.rb
r1520 r1574 35 35 def find_message 36 36 root.message(@message) or raise RuntimeError.new("#{@message} not found") 37 end 38 39 def soapbody_use 40 if @soapbody 41 @soapbody.use || :literal 42 else 43 raise RuntimeError.new("soap:body not found") 44 end 37 45 end 38 46 trunk/lib/wsdl/soap/body.rb
r1520 r1574 37 37 @parts = value.source 38 38 when UseAttrName 39 @use = value.source 39 if ['literal', 'encoded'].include?(value.source) 40 @use = value.source.intern 41 else 42 raise RuntimeError.new("unknown use of soap:body: #{value.source}") 43 end 40 44 when EncodingStyleAttrName 41 45 @encodingstyle = value.source trunk/lib/wsdl/soap/cgiStubCreator.rb
r1552 r1574 54 54 super(*arg) 55 55 servant = #{class_name}.new 56 #{class_name}::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 57 if style == :document 58 @router.add_document_operation(servant, soapaction, name, param_def) 56 #{class_name}::Methods.each do |definitions| 57 opt = definitions.last 58 if opt[:request_style] == :document 59 @router.add_document_operation(servant, *definitions) 59 60 else 60 qname = XSD::QName.new(namespace, name_as) 61 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 61 @router.add_rpc_operation(servant, *definitions) 62 62 end 63 63 end trunk/lib/wsdl/soap/clientSkeltonCreator.rb
r1520 r1574 43 43 obj = #{ drv_name }.new(endpoint_url) 44 44 45 # Uncomment the below lineto see SOAP wiredumps.46 # obj.wiredump_dev = STDERR 45 # run ruby with -d to see SOAP wiredumps. 46 obj.wiredump_dev = STDERR if $DEBUG 47 47 48 48 __EOD__ trunk/lib/wsdl/soap/driverCreator.rb
r1533 r1574 70 70 c.def_privatemethod("init_methods") do 71 71 <<-EOD 72 Methods.each do |name_as, name, params, soapaction, namespace, style| 73 qname = XSD::QName.new(namespace, name_as) 74 if style == :document 75 @proxy.add_document_method(soapaction, name, params) 76 add_document_method_interface(name, params) 72 Methods.each do |definitions| 73 opt = definitions.last 74 if opt[:request_style] == :document 75 add_document_operation(*definitions) 77 76 else 78 @proxy.add_rpc_method(qname, soapaction, name, params) 79 add_rpc_method_interface(name, params) 80 end 81 if name_as != name and name_as.capitalize == name.capitalize 82 ::SOAP::Mapping.define_singleton_method(self, name_as) do |*arg| 83 __send__(name, *arg) 77 add_rpc_operation(*definitions) 78 qname = definitions[0] 79 name = definitions[2] 80 if qname.name != name and qname.name.capitalize == name.capitalize 81 ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg| 82 __send__(name, *arg) 83 end 84 84 end 85 85 end trunk/lib/wsdl/soap/methodDefCreator.rb
r1538 r1574 83 83 name_as = operation.name.name 84 84 style = binding.soapoperation_style 85 inputuse = binding.input.soapbody_use 86 outputuse = binding.output.soapbody_use 85 87 namespace = binding.input.soapbody.namespace 86 88 if style == :rpc 89 qname = XSD::QName.new(namespace, name_as) 87 90 paramstr = param2str(collect_rpcparameter(operation)) 88 91 else 92 qname = nil 89 93 paramstr = param2str(collect_documentparameter(operation)) 90 94 end … … 92 96 paramstr = '[]' 93 97 else 94 paramstr = "[\n" << paramstr.gsub(/^/, ' ') << "\n ]" 95 end 96 return <<__EOD__ 97 [#{dq(name_as)}, #{dq(name)}, 98 paramstr = "[ " << paramstr.split(/\r?\n/).join("\n ") << " ]" 99 end 100 definitions = <<__EOD__ 101 #{ndq(binding.soapaction)}, 102 #{dq(name)}, 98 103 #{paramstr}, 99 #{ndq(binding.soapaction)}, #{ndq(namespace)}, #{sym(style.id2name)}100 ] 104 { :request_style => #{sym(style.id2name)}, :request_use => #{sym(inputuse.id2name)}, 105 :response_style => #{sym(style.id2name)}, :response_use => #{sym(outputuse.id2name)} } 101 106 __EOD__ 107 if style == :rpc 108 return <<__EOD__ 109 [ #{qname.dump}, 110 #{definitions}] 111 __EOD__ 112 else 113 return <<__EOD__ 114 [ #{definitions}] 115 __EOD__ 116 end 102 117 end 103 118 trunk/lib/wsdl/soap/standaloneServerStubCreator.rb
r1552 r1574 56 56 super(*arg) 57 57 servant = #{class_name}.new 58 #{class_name}::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 59 if style == :document 60 @router.add_document_operation(servant, soapaction, name, param_def) 58 #{class_name}::Methods.each do |definitions| 59 opt = definitions.last 60 if opt[:request_style] == :document 61 @router.add_document_operation(servant, *definitions) 61 62 else 62 qname = XSD::QName.new(namespace, name_as) 63 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 63 @router.add_rpc_operation(servant, *definitions) 64 64 end 65 65 end trunk/lib/wsdl/xmlSchema/importer.rb
r1552 r1574 54 54 client.no_proxy = ::SOAP::Env::NO_PROXY 55 55 if opt = ::SOAP::Property.loadproperty(::SOAP::PropertyName) 56 ::SOAP::HTTPConfigLoader.set_options(client, opt["client.protocol.http"]) 56 ::SOAP::HTTPConfigLoader.set_options(client, 57 opt["client.protocol.http"]) 57 58 end 58 59 content = client.get_content(location) trunk/sample/soap/ssl/sslclient_with_clientauth.rb
r1520 r1574 3 3 4 4 # setup driver 5 url = "https://localhost:17443/"5 url = ARGV.shift || "https://localhost:17443/" 6 6 client = SOAP::RPC::Driver.new(url, 'urn:sslhelloworld') 7 7 client.add_method("hello_world", "from") trunk/test/wsdl/any/expectedDriver.rb
r1532 r1574 15 15 16 16 Methods = [ 17 ["echo", "echo", 18 [ 19 ["in", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]], 20 ["retval", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]] 21 ], 22 "urn:example.com:echo", "urn:example.com:echo", :rpc 17 [ XSD::QName.new("urn:example.com:echo", "echo"), 18 "urn:example.com:echo", 19 "echo", 20 [ ["in", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]], 21 ["retval", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]] ], 22 { :request_style => :rpc, :request_use => :encoded, 23 :response_style => :rpc, :response_use => :encoded } 23 24 ] 24 25 ] … … 34 35 35 36 def init_methods 36 Methods.each do |name_as, name, params, soapaction, namespace, style| 37 qname = XSD::QName.new(namespace, name_as) 38 if style == :document 39 @proxy.add_document_method(soapaction, name, params) 40 add_document_method_interface(name, params) 37 Methods.each do |definitions| 38 opt = definitions.last 39 if opt[:request_style] == :document 40 add_document_operation(*definitions) 41 41 else 42 @proxy.add_rpc_method(qname, soapaction, name, params) 43 add_rpc_method_interface(name, params) 44 end 45 if name_as != name and name_as.capitalize == name.capitalize 46 ::SOAP::Mapping.define_singleton_method(self, name_as) do |*arg| 47 __send__(name, *arg) 42 add_rpc_operation(*definitions) 43 qname = definitions[0] 44 name = definitions[2] 45 if qname.name != name and qname.name.capitalize == name.capitalize 46 ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg| 47 __send__(name, *arg) 48 end 48 49 end 49 50 end trunk/test/wsdl/any/expectedService.rb
r1532 r1574 16 16 17 17 Methods = [ 18 ["echo", "echo", 19 [ 20 ["in", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]], 21 ["retval", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]] 22 ], 23 "urn:example.com:echo", "urn:example.com:echo", :rpc 18 [ XSD::QName.new("urn:example.com:echo", "echo"), 19 "urn:example.com:echo", 20 "echo", 21 [ ["in", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]], 22 ["retval", "echoitem", ["FooBar", "urn:example.com:echo-type", "foo.bar"]] ], 23 { :request_style => :rpc, :request_use => :encoded, 24 :response_style => :rpc, :response_use => :encoded } 24 25 ] 25 26 ] … … 30 31 super(*arg) 31 32 servant = Echo_port_type.new 32 Echo_port_type::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 33 if style == :document 34 @router.add_document_operation(servant, soapaction, name, param_def) 33 Echo_port_type::Methods.each do |definitions| 34 opt = definitions.last 35 if opt[:request_style] == :document 36 @router.add_document_operation(servant, *definitions) 35 37 else 36 qname = XSD::QName.new(namespace, name_as) 37 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 38 @router.add_rpc_operation(servant, *definitions) 38 39 end 39 40 end trunk/test/wsdl/rpc/test_rpc_lit.rb
r1569 r1574 49 49 teardown_server 50 50 File.unlink(pathname('RPC-Literal-TestDefinitions.rb')) 51 File.unlink(pathname('RPC-Literal-TestDefinitionsDriver.rb')) 51 52 @client.reset_stream if @client 52 53 end … … 64 65 gen.logger.level = Logger::FATAL 65 66 gen.opt['classdef'] = nil 67 gen.opt['driver'] = nil 66 68 gen.opt['force'] = true 67 69 gen.run 68 70 require pathname('RPC-Literal-TestDefinitions.rb') 71 require pathname('RPC-Literal-TestDefinitionsDriver.rb') 69 72 end 70 73 … … 94 97 assert_equal(["a", "b", "c"], @client.echoStringArray(["a", "b", "c"]).item) 95 98 end 99 100 def test_stub 101 drv = SoapTestPortTypeRpc.new("http://localhost:#{Port}/") 102 drv.wiredump_dev = STDOUT if $DEBUG 103 assert_equal(["a", "b", "c"], drv.echoStringArray(["a", "b", "c"])) 104 end 96 105 end 97 106 trunk/test/wsdl/simpletype/rpc/expectedClient.rb
r1520 r1574 5 5 obj = Echo_version_port_type.new(endpoint_url) 6 6 7 # Uncomment the below lineto see SOAP wiredumps.8 # obj.wiredump_dev = STDERR 7 # run ruby with -d to see SOAP wiredumps. 8 obj.wiredump_dev = STDERR if $DEBUG 9 9 10 10 # SYNOPSIS trunk/test/wsdl/simpletype/rpc/expectedDriver.rb
r1532 r1574 15 15 16 16 Methods = [ 17 ["echo_version", "echo_version", 18 [ 19 ["in", "version", ["::SOAP::SOAPString"]], 20 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] 21 ], 22 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 17 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"), 18 "urn:example.com:simpletype-rpc", 19 "echo_version", 20 [ ["in", "version", ["::SOAP::SOAPString"]], 21 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ], 22 { :request_style => :rpc, :request_use => :encoded, 23 :response_style => :rpc, :response_use => :encoded } 23 24 ], 24 ["echo_version_r", "echo_version_r", 25 [ 26 ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 27 ["retval", "version", ["::SOAP::SOAPString"]] 28 ], 29 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 25 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"), 26 "urn:example.com:simpletype-rpc", 27 "echo_version_r", 28 [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 29 ["retval", "version", ["::SOAP::SOAPString"]] ], 30 { :request_style => :rpc, :request_use => :encoded, 31 :response_style => :rpc, :response_use => :encoded } 30 32 ] 31 33 ] … … 41 43 42 44 def init_methods 43 Methods.each do |name_as, name, params, soapaction, namespace, style| 44 qname = XSD::QName.new(namespace, name_as) 45 if style == :document 46 @proxy.add_document_method(soapaction, name, params) 47 add_document_method_interface(name, params) 45 Methods.each do |definitions| 46 opt = definitions.last 47 if opt[:request_style] == :document 48 add_document_operation(*definitions) 48 49 else 49 @proxy.add_rpc_method(qname, soapaction, name, params) 50 add_rpc_method_interface(name, params) 51 end 52 if name_as != name and name_as.capitalize == name.capitalize 53 ::SOAP::Mapping.define_singleton_method(self, name_as) do |*arg| 54 __send__(name, *arg) 50 add_rpc_operation(*definitions) 51 qname = definitions[0] 52 name = definitions[2] 53 if qname.name != name and qname.name.capitalize == name.capitalize 54 ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg| 55 __send__(name, *arg) 56 end 55 57 end 56 58 end trunk/test/wsdl/simpletype/rpc/expectedService.rb
r1532 r1574 16 16 17 17 Methods = [ 18 ["echo_version", "echo_version", 19 [ 20 ["in", "version", ["::SOAP::SOAPString"]], 21 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] 22 ], 23 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 18 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"), 19 "urn:example.com:simpletype-rpc", 20 "echo_version", 21 [ ["in", "version", ["::SOAP::SOAPString"]], 22 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ], 23 { :request_style => :rpc, :request_use => :encoded, 24 :response_style => :rpc, :response_use => :encoded } 24 25 ], 25 ["echo_version_r", "echo_version_r", 26 [ 27 ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 28 ["retval", "version", ["::SOAP::SOAPString"]] 29 ], 30 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 26 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"), 27 "urn:example.com:simpletype-rpc", 28 "echo_version_r", 29 [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 30 ["retval", "version", ["::SOAP::SOAPString"]] ], 31 { :request_style => :rpc, :request_use => :encoded, 32 :response_style => :rpc, :response_use => :encoded } 31 33 ] 32 34 ] … … 37 39 super(*arg) 38 40 servant = Echo_version_port_type.new 39 Echo_version_port_type::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 40 if style == :document 41 @router.add_document_operation(servant, soapaction, name, param_def) 41 Echo_version_port_type::Methods.each do |definitions| 42 opt = definitions.last 43 if opt[:request_style] == :document 44 @router.add_document_operation(servant, *definitions) 42 45 else 43 qname = XSD::QName.new(namespace, name_as) 44 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 46 @router.add_rpc_operation(servant, *definitions) 45 47 end 46 48 end trunk/test/wsdl/soap/wsdl2ruby/expectedClient.rb
r1520 r1574 5 5 obj = Echo_version_port_type.new(endpoint_url) 6 6 7 # Uncomment the below lineto see SOAP wiredumps.8 # obj.wiredump_dev = STDERR 7 # run ruby with -d to see SOAP wiredumps. 8 obj.wiredump_dev = STDERR if $DEBUG 9 9 10 10 # SYNOPSIS trunk/test/wsdl/soap/wsdl2ruby/expectedDriver.rb
r1532 r1574 15 15 16 16 Methods = [ 17 ["echo_version", "echo_version", 18 [ 19 ["in", "version", ["::SOAP::SOAPString"]], 20 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] 21 ], 22 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 17 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"), 18 "urn:example.com:simpletype-rpc", 19 "echo_version", 20 [ ["in", "version", ["::SOAP::SOAPString"]], 21 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ], 22 { :request_style => :rpc, :request_use => :encoded, 23 :response_style => :rpc, :response_use => :encoded } 23 24 ], 24 ["echo_version_r", "echo_version_r", 25 [ 26 ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 27 ["retval", "version", ["::SOAP::SOAPString"]] 28 ], 29 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 25 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"), 26 "urn:example.com:simpletype-rpc", 27 "echo_version_r", 28 [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 29 ["retval", "version", ["::SOAP::SOAPString"]] ], 30 { :request_style => :rpc, :request_use => :encoded, 31 :response_style => :rpc, :response_use => :encoded } 30 32 ] 31 33 ] … … 41 43 42 44 def init_methods 43 Methods.each do |name_as, name, params, soapaction, namespace, style| 44 qname = XSD::QName.new(namespace, name_as) 45 if style == :document 46 @proxy.add_document_method(soapaction, name, params) 47 add_document_method_interface(name, params) 45 Methods.each do |definitions| 46 opt = definitions.last 47 if opt[:request_style] == :document 48 add_document_operation(*definitions) 48 49 else 49 @proxy.add_rpc_method(qname, soapaction, name, params) 50 add_rpc_method_interface(name, params) 51 end 52 if name_as != name and name_as.capitalize == name.capitalize 53 ::SOAP::Mapping.define_singleton_method(self, name_as) do |*arg| 54 __send__(name, *arg) 50 add_rpc_operation(*definitions) 51 qname = definitions[0] 52 name = definitions[2] 53 if qname.name != name and qname.name.capitalize == name.capitalize 54 ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg| 55 __send__(name, *arg) 56 end 55 57 end 56 58 end trunk/test/wsdl/soap/wsdl2ruby/expectedService.cgi
r1532 r1574 16 16 17 17 Methods = [ 18 ["echo_version", "echo_version", 19 [ 20 ["in", "version", ["::SOAP::SOAPString"]], 21 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] 22 ], 23 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 18 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"), 19 "urn:example.com:simpletype-rpc", 20 "echo_version", 21 [ ["in", "version", ["::SOAP::SOAPString"]], 22 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ], 23 { :request_style => :rpc, :request_use => :encoded, 24 :response_style => :rpc, :response_use => :encoded } 24 25 ], 25 ["echo_version_r", "echo_version_r", 26 [ 27 ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 28 ["retval", "version", ["::SOAP::SOAPString"]] 29 ], 30 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 26 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"), 27 "urn:example.com:simpletype-rpc", 28 "echo_version_r", 29 [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 30 ["retval", "version", ["::SOAP::SOAPString"]] ], 31 { :request_style => :rpc, :request_use => :encoded, 32 :response_style => :rpc, :response_use => :encoded } 31 33 ] 32 34 ] … … 37 39 super(*arg) 38 40 servant = Echo_version_port_type.new 39 Echo_version_port_type::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 40 if style == :document 41 @router.add_document_operation(servant, soapaction, name, param_def) 41 Echo_version_port_type::Methods.each do |definitions| 42 opt = definitions.last 43 if opt[:request_style] == :document 44 @router.add_document_operation(servant, *definitions) 42 45 else 43 qname = XSD::QName.new(namespace, name_as) 44 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 46 @router.add_rpc_operation(servant, *definitions) 45 47 end 46 48 end trunk/test/wsdl/soap/wsdl2ruby/expectedService.rb
r1532 r1574 16 16 17 17 Methods = [ 18 ["echo_version", "echo_version", 19 [ 20 ["in", "version", ["::SOAP::SOAPString"]], 21 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] 22 ], 23 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 18 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version"), 19 "urn:example.com:simpletype-rpc", 20 "echo_version", 21 [ ["in", "version", ["::SOAP::SOAPString"]], 22 ["retval", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]] ], 23 { :request_style => :rpc, :request_use => :encoded, 24 :response_style => :rpc, :response_use => :encoded } 24 25 ], 25 ["echo_version_r", "echo_version_r", 26 [ 27 ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 28 ["retval", "version", ["::SOAP::SOAPString"]] 29 ], 30 "urn:example.com:simpletype-rpc", "urn:example.com:simpletype-rpc", :rpc 26 [ XSD::QName.new("urn:example.com:simpletype-rpc", "echo_version_r"), 27 "urn:example.com:simpletype-rpc", 28 "echo_version_r", 29 [ ["in", "version_struct", ["Version_struct", "urn:example.com:simpletype-rpc-type", "version_struct"]], 30 ["retval", "version", ["::SOAP::SOAPString"]] ], 31 { :request_style => :rpc, :request_use => :encoded, 32 :response_style => :rpc, :response_use => :encoded } 31 33 ] 32 34 ] … … 37 39 super(*arg) 38 40 servant = Echo_version_port_type.new 39 Echo_version_port_type::Methods.each do |name_as, name, param_def, soapaction, namespace, style| 40 if style == :document 41 @router.add_document_operation(servant, soapaction, name, param_def) 41 Echo_version_port_type::Methods.each do |definitions| 42 opt = definitions.last 43 if opt[:request_style] == :document 44 @router.add_document_operation(servant, *definitions) 42 45 else 43 qname = XSD::QName.new(namespace, name_as) 44 @router.add_rpc_operation(servant, qname, soapaction, name, param_def) 46 @router.add_rpc_operation(servant, *definitions) 45 47 end 46 48 end