ActionWebService and Dot NET

I hate dot NET, but sadly I spent an entire day interfacing with it. To make a long story short, to get my Rails application talking to a dot NET webservice properly, I needed to slightly hijack ActionWebService::Client::Soap.

I've included a patch to rails/actionwebservice/lib/action_web_service/client/soap_client.rb which helped me deal with dot NET. It'd be great if someone with write access to Rails svn could commit this, or otherwise propose a better way to accomplish what I'm doing with ActionWebService.

Basically what this does is allow you to do something like this:

client = ActionWebService::Client::Soap.new(GmClickToCallApi, 'http://someurl/Service.asmx’,         :namespace => 'http://some_namespace/', :soap_action_base => "http://some_namespace",         :driver_options => { 'protocol.wiredump_file_base' => "/Users/bosko/FOO_BAR" },         :driver_attributes => { 'default_encodingstyle' =>         SOAP::EncodingStyle::ASPDotNetHandler::Namespace,         'allow_unqualified_element' => true})

The key thing to observe is the new "driver_attributes" option. This is similar to "driver_options", but different -- see the patch for how/why. There is no current way (before patch) to send attribute assignment messages to the underlying SOAP Driver in AWS::Client::Soap. This lets you do just that.

Note also that in the above code snippet, I use the "protocol.wiredump_file_base" option as well; it wouldn't hurt if this particular option was also documented in AWS::Client::Soap (it's not in the patch I submit, but perhaps it should be in a separate one).

Cheers,

hijack_actionwebservice_soap_client.diff (2.07 KB)

Your best bet will be to follow the instructions @ http://dev.rubyonrails.org/wiki and submit a patch ticket to have it reviewed for inclusion.

John W Higgins wishdev@gmail.com