Changeset 1783
- Timestamp:
- 05/18/07 00:16:39 (2 years ago)
- Files:
-
- trunk/lib/soap/rpc/proxy.rb (modified) (5 diffs)
- trunk/lib/soap/rpc/router.rb (modified) (4 diffs)
- trunk/lib/wsdl/operationBinding.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/classDefCreatorSupport.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/methodDefCreator.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/rpc/proxy.rb
r1775 r1783 85 85 86 86 def add_rpc_operation(qname, soapaction, name, param_def, opt = {}) 87 ensure_styleuse_option(opt, :rpc, :encoded) 87 88 opt[:request_qname] = qname 88 opt[:request_style] ||= :rpc89 opt[:response_style] ||= :rpc90 opt[:request_use] ||= :encoded91 opt[:response_use] ||= :encoded92 89 op = Operation.new(soapaction, param_def, opt) 93 90 assign_operation(name, qname, soapaction, op) … … 95 92 96 93 def add_document_operation(soapaction, name, param_def, opt = {}) 97 opt[:request_style] ||= :document 98 opt[:response_style] ||= :document 99 opt[:request_use] ||= :literal 100 opt[:response_use] ||= :literal 94 ensure_styleuse_option(opt, :document, :literal) 101 95 op = Operation.new(soapaction, param_def, opt) 102 96 assign_operation(name, nil, soapaction, op) … … 143 137 ) 144 138 env = route(req_header, req_body, reqopt, resopt) 139 if op_info.response_use.nil? 140 return nil 141 end 145 142 raise EmptyResponseError unless env 146 143 receive_headers(env.header) … … 190 187 191 188 private 189 190 def ensure_styleuse_option(opt, style, use) 191 if opt[:request_style] || opt[:response_style] || opt[:request_use] || opt[:response_use] 192 # do not edit 193 else 194 opt[:request_style] ||= style 195 opt[:response_style] ||= style 196 opt[:request_use] ||= use 197 opt[:response_use] ||= use 198 end 199 end 192 200 193 201 def initialize_streamhandler(options) … … 431 439 end 432 440 441 # nil means oneway 433 442 def check_use(use) 434 unless [:encoded, :literal ].include?(use)443 unless [:encoded, :literal, nil].include?(use) 435 444 raise MethodDefinitionError.new("unknown use: #{use}") 436 445 end trunk/lib/soap/rpc/router.rb
r1754 r1783 179 179 conn_data.is_fault = true if soap_response.is_a?(SOAPFault) 180 180 header = call_headers(headerhandler) 181 body = SOAPBody.new(soap_response) 182 env = SOAPEnvelope.new(header, body) 183 marshal(conn_data, env, default_encodingstyle) 181 if op.response_use.nil? 182 conn_data.send_string = "" 183 conn_data 184 else 185 body = SOAPBody.new(soap_response) 186 env = SOAPEnvelope.new(header, body) 187 marshal(conn_data, env, default_encodingstyle) 188 end 184 189 end 185 190 … … 218 223 219 224 def ensure_styleuse_option(opt, style, use) 220 opt[:request_style] ||= style 221 opt[:response_style] ||= style 222 opt[:request_use] ||= use 223 opt[:response_use] ||= use 225 if opt[:request_style] || opt[:response_style] || opt[:request_use] || opt[:response_use] 226 # do not edit 227 else 228 opt[:request_style] ||= style 229 opt[:response_style] ||= style 230 opt[:request_use] ||= use 231 opt[:response_use] ||= use 232 end 224 233 end 225 234 … … 433 442 if @response_style == :rpc 434 443 response_rpc(result, mapping_registry, literal_mapping_registry, opt) 444 elsif @doc_response_qnames.empty? 445 # nothing to do 435 446 else 436 447 response_doc(result, mapping_registry, literal_mapping_registry, opt) … … 588 599 end 589 600 601 # nil means oneway 590 602 def check_use(use) 591 unless [:encoded, :literal ].include?(use)603 unless [:encoded, :literal, nil].include?(use) 592 604 raise ArgumentError.new("unknown use: #{use}") 593 605 end trunk/lib/wsdl/operationBinding.rb
r1711 r1783 77 77 end 78 78 79 def soapbody 80 (@input || @output).soapbody 81 end 82 83 def soapnamespace 84 soapbody ? soapbody.namespace : nil 85 end 86 79 87 def parse_element(element) 80 88 case element trunk/lib/wsdl/soap/classDefCreatorSupport.rb
r1757 r1783 73 73 74 74 def sym(ele) 75 ':' + ele 75 ':' + ele.id2name 76 end 77 78 def nsym(ele) 79 ele.nil? ? 'nil' : sym(ele) 76 80 end 77 81 trunk/lib/wsdl/soap/methodDefCreator.rb
r1775 r1783 109 109 name_as = operation.name 110 110 style = binding.soapoperation_style 111 inputuse = binding.input .soapbody_use112 outputuse = binding.output .soapbody_use113 namespace = binding. input.soapbody.namespace111 inputuse = binding.input ? binding.input.soapbody_use : nil 112 outputuse = binding.output ? binding.output.soapbody_use : nil 113 namespace = binding.soapnamespace 114 114 if style == :rpc 115 115 qname = XSD::QName.new(namespace, name_as) … … 128 128 #{dq(name)}, 129 129 #{paramstr}, 130 { :request_style => #{ sym(style.id2name)}, :request_use => #{sym(inputuse.id2name)},131 :response_style => #{ sym(style.id2name)}, :response_use => #{sym(outputuse.id2name)},130 { :request_style => #{nsym(style)}, :request_use => #{nsym(inputuse)}, 131 :response_style => #{nsym(style)}, :response_use => #{nsym(outputuse)}, 132 132 :faults => #{op_faults_str} } 133 133 __EOD__