Ruby 使用savongem访问SOAP客户端

Ruby 使用savongem访问SOAP客户端,ruby,ssl,soap,openssl,savon,Ruby,Ssl,Soap,Openssl,Savon,我正在尝试使用Savon gem()访问SOAP服务 用于身份验证的SOAP服务证书 我使用openssl生成了一个证书,如下所示: openssl req-x509-nodes-days 365-sha256-newkey rsa:2048-keyout name.pem-out name.pem ruby代码如下所示: savonConfig = { :wsdl => 'http://www......?wsdl', :log_level => :debug,

我正在尝试使用Savon gem()访问SOAP服务

用于身份验证的SOAP服务证书

我使用openssl生成了一个证书,如下所示:

openssl req-x509-nodes-days 365-sha256-newkey rsa:2048-keyout name.pem-out name.pem

ruby代码如下所示:

savonConfig = {
    :wsdl => 'http://www......?wsdl',
    :log_level => :debug,
    :log => true,
    :ssl_verify_mode => :client_once,
    ssl_version: :SSLv3,
    :ssl_cert_file => './name.pem',
    :ssl_cert_key_file => './name.pem',
    :ssl_cert_key_password => 'password',
    :open_timeout => 600,
    :read_timeout => 600
}
client = Savon.client savonConfig
response = client.call(:request_message, message: {})
当我尝试使用SOAP服务时,我得到:

client.call(:get_something, message: {}): 
Savon::UnknownOperationError: Unable to find SOAP operation: :get_something
我在一个不需要身份验证的SOAP服务中尝试了相同的代码,它运行良好。所以我的假设是我对证书做了一些错误的事情

我已经将密钥和证书合并为一个,但是当我将其拆分时,仍然会出现这个问题


关于可能出现的错误有什么想法吗?

您是否仔细检查了用于该服务的WSDL?尝试“client.operations”并查看为其列出了哪些操作。我有并返回了操作,这就是我正在使用的操作。因此,与服务的连接是正确的。我怀疑现在的问题是身份验证