Class: ActionWebService::Client::Soap

Class | ActionWebService::Client::Soap
In: | lib/action_web_service/client/soap_client.rb
Parent: | Base

Implements SOAP client support (using RPC encoding for the messages).

#### Example Usage

      class PersonAPI < ActionWebService::API::Base
        api_method :find_all, :returns => [[Person]]
      end

      soap_client = ActionWebService::Client::Soap.new(PersonAPI, "http://...")
      persons = soap_client.find_all

### Methods

new perform_invocation soap_action

### Public Class methods

new(api, endpoint_uri, options={})

Creates a new web service client using the SOAP RPC protocol.

`api` must be an ActionWebService::API::Base derivative, and `endpoint_uri` must point at the relevant URL to which protocol requests will be sent with HTTP POST.

Valid options:

`:namespace`
  If the remote server has used a custom namespace to declare its custom types, you can specify it here. This would be the namespace declared with a [WebService(Namespace = "namespace")] attribute in .NET, for example.
`:driver_options`
  If you want to supply any custom SOAP RPC driver options, you can provide them as a Hash here

The `:driver_options` option can be used to configure the backend SOAP RPC driver. An example of configuring the SOAP backend to do client-certificate authenticated SSL connections to the server:

      opts = {}
      opts['protocol.http.ssl_config.verify_mode'] = 'OpenSSL::SSL::VERIFY_PEER'
      opts['protocol.http.ssl_config.client_cert'] = client_cert_file_path
      opts['protocol.http.ssl_config.client_key'] = client_key_file_path
      opts['protocol.http.ssl_config.ca_file'] = ca_cert_file_path
      client = ActionWebService::Client::Soap.new(api, 'https://some/service', :driver_options => opts)

### Protected Instance methods

perform_invocation(method_name, args)
soap_action(method_name)

[Validate]