如何解决此错误“(pre:svcFault)服务故障”?

时间:2019-06-12 12:31:03

标签: ruby-on-rails web-services soap savon

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

1 个答案:

答案 0 :(得分:0)

在哪里可以使用SoapUI(https://www.soapui.org。)创建有效的呼叫?首先尝试一下,使其生效。 接下来,从不带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示例进行比较。