简体   繁体   中英

Savon: WCF Soap service with wsse auth: AddressFilter mismatch at the EndpointDispatcher

I am trying to create SOAPClient using Savon - rubygem.

Its a WCF soap service with WSSE auth over https. Here is the code that I tried:

require 'savon'

client = Savon::Client.new do
    wsdl.document = "https://svc.sxxxxxify.com:8081/ConfSet.svc?wsdl"
    config.soap_version = 2
    wsse.credentials "aa5@xxasxsaxsh.com", "test123"
end

p client.wsdl.soap_actions
response = client.request :get_user_clients
p response

But I get this error:

http://www.w3.org/2005/08/addressing/soap/fault2012-10-26T06:07:42.247Z2012-10-26T06:12:42.247Zs:Sendera:DestinationUnreachableThe message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.

.

The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree. (Savon::SOAP::Fault)

Please help me solve this problem

I had the some problem. I've solved the 'To' problem by providing a header entry and a new namespace. The 'Action' header was also necessary though, and I only discovered that after inspecting SoapUI logs. Here is what worked for me:

  @service_url = 'https://svc.sxxxxxify.com:8081/ConfSet.svc/service'
  @action = 'your_action'
  @client = Savon.client(:wsdl => "#{@service_url}?wsdl", :soap_version => 2, 
    :namespaces => {"xmlns:x" => "http://www.w3.org/2005/08/addressing"}, 
    :soap_header => {"x:To" => @service_url, "x:Action" => "http://tempuri.org/#{@action}"})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM