如何解决此错误“(pre:svcFault) Service Fault”?

How to solve this error " (pre:svcFault) Service Fault"?

我正在尝试使用 Savon gem 调用 SOAP api。我收到以下错误:“(pre:svcFault) 服务故障” 我为请求创建了 header 和消息。 这是从 SoapUI 发送的请求:SoapUI request。 我从 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 
%>

您在哪里可以使用 SoapUI 创建有效的调用 (https://www.soapui.org.)?先试试这个,让它工作。 接下来从一个普通的 ruby 脚本创建一个调用 - 没有 Rails - 它发送与之前在 SoapUI 中所做的相同的功能 XML。 第三次将此代码嵌入到您的 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 示例进行比较。