Changeset 1570
- Timestamp:
- 07/13/05 23:16:21 (3 years ago)
- Files:
-
- trunk/lib/soap/element.rb (modified) (1 diff)
- trunk/lib/soap/parser.rb (modified) (4 diffs)
- trunk/lib/soap/rpc/proxy.rb (modified) (4 diffs)
- trunk/lib/soap/soap.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/element.rb
r1520 r1570 240 240 241 241 def encode(generator, ns, attrs = {}) 242 SOAPGenerator.assign_ns(attrs, ns, EnvelopeNamespace, SOAPNamespaceTag)242 SOAPGenerator.assign_ns(attrs, ns, elename.namespace, SOAPNamespaceTag) 243 243 name = ns.name(@elename) 244 244 generator.encode_tag(name, attrs) trunk/lib/soap/parser.rb
r1520 r1570 61 61 public 62 62 63 attr_accessor :envelopenamespace 63 64 attr_accessor :default_encodingstyle 64 65 attr_accessor :decode_typemap … … 71 72 @lastnode = nil 72 73 @handlers = {} 74 @envelopenamespace = opt[:envelopenamespace] || EnvelopeNamespace 73 75 @default_encodingstyle = opt[:default_encodingstyle] || EncodingNamespace 74 76 @decode_typemap = opt[:decode_typemap] || nil … … 158 160 def find_encodingstyle(ns, attrs) 159 161 attrs.each do |key, value| 160 if (ns.compare( EnvelopeNamespace, AttrEncodingStyle, key))162 if (ns.compare(@envelopenamespace, AttrEncodingStyle, key)) 161 163 return value 162 164 end … … 169 171 170 172 # Envelope based parsing. 171 if ((ele.namespace == EnvelopeNamespace) ||173 if ((ele.namespace == @envelopenamespace) || 172 174 (@allow_unqualified_element && ele.namespace.nil?)) 173 175 o = decode_soap_envelope(ns, ele, attrs, parent) trunk/lib/soap/rpc/proxy.rb
r1540 r1570 116 116 reqopt = create_options({ 117 117 :soapaction => op_info.soapaction || @soapaction, 118 :envelopenamespace => @options["soap.envelope.requestnamespace"], 118 119 :default_encodingstyle => op_info.request_default_encodingstyle}) 119 120 resopt = create_options({ 121 :envelopenamespace => @options["soap.envelope.responsenamespace"], 120 122 :default_encodingstyle => op_info.response_default_encodingstyle}) 121 123 env = route(req_header, req_body, reqopt, resopt) … … 131 133 132 134 def route(req_header, req_body, reqopt, resopt) 133 req_env = SOAPEnvelope.new(req_header, req_body) 135 req_env = ::SOAP::SOAPEnvelope.new(req_header, req_body) 136 unless reqopt[:envelopenamespace].nil? 137 set_envelopenamespace(req_env, reqopt[:envelopenamespace]) 138 end 134 139 reqopt[:external_content] = nil 135 140 conn_data = marshal(req_env, reqopt) … … 159 164 160 165 private 166 167 def set_envelopenamespace(env, namespace) 168 env.elename.namespace = namespace 169 env.header.elename.namespace = namespace if env.header 170 env.body.elename.namespace = namespace if env.body 171 end 161 172 162 173 def create_request_header … … 201 212 ::SOAP::StreamHandler.parse_media_type(contenttype) 202 213 env = Processor.unmarshal(conn_data.receive_string, opt) 214 end 215 unless env.is_a?(::SOAP::SOAPEnvelope) 216 raise ResponseFormatError.new( 217 "response is not a SOAP envelope: #{conn_data.receive_string}") 203 218 end 204 219 env trunk/lib/soap/soap.rb
r1552 r1570 77 77 class RPCRoutingError < Error; end 78 78 class EmptyResponseError < Error; end 79 class ResponseFormatError < Error; end 79 80 80 81 class UnhandledMustUnderstandHeaderError < Error; end