Как решить эту ошибку "(pre: svcFault) Service Fault"? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь вызвать API-интерфейс SOAP с использованием гема Savon.Я получаю следующую ошибку: «(pre: svcFault) Service Fault» error image Я создал заголовок и сообщение для запроса.Вот запрос, отправленный из SoapUI: Запрос SoapUI .я получаю истинный ответ от SoapUI.Мой код показан ниже:

class SoapApi
    require 'savon'
    def self.initialize 
        header = {
            "ebmCID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a", 
            "ebmMID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a",
            "ebmRTID" => "9366498d-bc79-4fad-be2b-fa1a0e84241a",
            "ebmSID" => "FMobile-FCUBS",
            "ebmTimestamp" => "2019-06-10T12:27:46.1623586Z",
        }
        message = { 
            customerId: '00653473'
        }
        client = Savon.client(
                    :wsdl => "https://192.168.176.103:8012/tevs/pp.pm.evs.Customer_1.2?wsdl",
                    :ssl_verify_mode => :none
                    )
        response = client.call(
                    :get_account_list,
                    :soap_header => header, 
                    :message => message
                    )
        return response
    end
end

И здесь я вызываю вышеуказанный метод:

#index.html.erb
<%=
  SoapApi.initialize
  puts @response 
%>

1 Ответ

0 голосов
/ 12 июня 2019

Где вы можете создать действительный вызов с помощью SoapUI (https://www.soapui.org.)? Сначала попробуйте это и заставьте его работать. Затем создайте вызов из простого сценария ruby ​​- без Rails - который отправляет тот же функциональный XML, что и выв SoapUI ранее. В-третьих, вставьте этот код в ваше приложение RoR.

Для лучшего ведения журнала вы можете добавить в определение клиента следующее:

client = Savon.client(
  :wsdl => "https://192.168.176.103:8012/tevs/pp.pm.evs.Customer_1.2?wsdl",
           :ssl_verify_mode => :none,
    log: true,
    log_level: :debug,
    pretty_print_xml: true
    )

Сравните вывод с вашим рабочим примером SoapUI.

...