On Mar 31, 4:12 pm, jammendolia <jammendo... / gmail.com> wrote:
> > A hack: take the final XML and do a string substitution.
>
> > final_xml.sub!( '<soap:Body></soap:Body>', '<soap:Body/>')
>
> Thanks for the reply James!
>
> I had thought of using this approach, and I'm completely open to it,
> my problem is that I'm not sure where I can intercept the request to
> make this change. I need to hook in somewhere after it's been
> generated but before it's sent across the wire.
>
> Any suggestions?
>
> Thanks again,
>
> Joe

I'm not positive, but I think you could implement James's idea in
SOAP::RPC::Proxy#marshal (in /usr/lib/ruby/1.8/soap/rpc/proxy.rb
here).

I haven't tested this, but I would save this:

module SOAP
module RPC

class Proxy
private
  class Operation
  private
    def marshal(env, opt)
      send_string = Processor.marshal(env, opt)
      send_string && send_string.sub!('<soap:Body></soap:Body>',
'<soap:Body/>')
      StreamHandler::ConnectionData.new(send_string)
    end
  end
end

end
end

and require it in your project. I'm not sure I have all the privates
in the right place, but that should be close.

Jeremy