我正在使用Savon 2.3
wsdl 文件调用 Web 服务,但是我的 wsdl 文件分为三个文件绑定、操作和定义,其中三个相互引用是这样的binding -> operations -> definition
。
在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.
,我认为最好单独提出这个问题。