1

Savon--rubygemを使用してSOAPClientを作成しようとしています。

httpsを介したWSSE認証を使用したWCFSOAPサービス。これが私が試したコードです:

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

しかし、私はこのエラーを受け取ります:

http://www.w3.org/2005/08/addressing/soap/fault2012-10-26T06:07:42.247Z2012-10-26T06:12:42.247Zs:Sendera:DestinationUnreachableTo''のメッセージはで処理できませんEndpointDispatcherでのAddressFilterの不一致が原因で、レシーバー。送信者と受信者のEndpointAddressesが一致していることを確認します。

EndpointDispatcherでのAddressFilterの不一致が原因で、To''のメッセージを受信者で処理できません。送信者と受信者のEndpointAddressesが一致していることを確認します。(Savon :: SOAP :: Fault)

この問題を解決するのを手伝ってください

4

1 に答える 1

1

私はいくつかの問題を抱えていました。ヘッダー エントリと新しい名前空間を提供することで、「To」の問題を解決しました。ただし、「Action」ヘッダーも必要であり、SoapUI ログを調べて初めて発見しました。これが私のために働いたものです:

  @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}"})
于 2013-08-28T19:39:52.850 に答える