我使用Savon 2.3
使用wsdl文件调用Web服务,但是我的wsdl文件分为三个文件绑定,操作和定义,其中三个文件相互引用,如binding -> operations -> definition
。 / p>
在 binding.wsdl 我有以下行导入 operations.wsdl :
<wsdl:import location="operations.wsdl" namespace="http://site.com"/>
在我的 operations.wsdl 中,我有以下导入 definition.wsdl :
<wsdl:import location="definition.wsdl" namespace="http://site.com/">
但是当我用operations
对象调用Savon.client
时,wsdl文件中定义的操作不会与client.operations
一起返回,但是当我合并三个文件:authenticate_user
时,在wsdl文件中定义,在数组中返回如下:
1.9.3p448 :014 > client = Savon.client(wsdl: "binding.wsdl", wsse_auth: ["Username","Password"])
1.9.3p448 :014 > client_combined = Savon.client(wsdl: "combined.wsdl", wsse_auth: ["Username","Password"])
1.9.3p448 :016 > client.operations
=> []
1.9.3p448 :017 > client_combined.operations
=> [:authenticate_user]
我的问题是为什么Savon
没有将相应的wsdl文件导入到一个然后使用它,或者我错过了什么。
这个问题与this非常相似,但是当我读到Ivan的评论时,它的版本与版本之间的行为有所不同,我使用的是Savon 2.3.0.
,我认为最好单独询问一下。