使用 Web 服务返回 Coldfusion 中的复杂对象
Consume webservice returning Complex objects in Coldfusion
我们正在使用 Argus WS,但我一直在弄清楚如何使用 GetUpdatedPricesInDateTimeRange
方法。
它 return 是一个复杂的对象类型,我无法访问 returned 对象中的元素结构。
获取错误
Element <e.g. element name> is undefined in a Java object of type class org.tempuri.GetUpdatedPricesInDateTimeRangeResponseGetUpdatedPricesInDateTimeRangeResult.
正在调用 Webservice 如下:
<cfinvoke
webservice="http://www.argusmedia.com/ArgusWSVSTO/ArgusOnline.asmx?wsdl"
method="GetUpdatedPricesInDateTimeRange"
returnvariable="PricesResponse">
<cfinvokeargument name="authToken" value="#AuthToken#"/>
<cfinvokeargument name="fromDateTime" value="2017-03-01"/>
<cfinvokeargument name="toDateTime" value="2017-03-02"/>
<cfinvokeargument name="startId" value="0"/>
</cfinvoke>
任何指点都会很有帮助。
编辑 1:CFDump return 变量
编辑 2:根据 Leigh 的建议,这对我有用。
XML
PricesResponse.get_any()[2].getAsString()
XML 中有名称空间,因此 XML 搜索工作如下:
XmlSearch(XMLDoc,"//*[local-name()='Element_Name']")
根据 Leigh 的评论,returnvariable
的 get_any()
方法可用于获取基础 XML。
get_any()
returns 消息元素数组的转储。
getAsString()
get_any()
returns 预期的 XML 字符串的方法。
<cfdump var="#PricesResponse.get_any()[1].getAsString()#">
注意 :预期的 XML 可以在任一 MessageElement[] 数组元素中,而不是在第一个元素中。
注释 2:XML在 XML 中使用命名空间搜索的工作方式如下:
XmlSearch(XMLDoc,"//*[local-name()='Element_Name']")
我们正在使用 Argus WS,但我一直在弄清楚如何使用 GetUpdatedPricesInDateTimeRange
方法。
它 return 是一个复杂的对象类型,我无法访问 returned 对象中的元素结构。
获取错误
Element <e.g. element name> is undefined in a Java object of type class org.tempuri.GetUpdatedPricesInDateTimeRangeResponseGetUpdatedPricesInDateTimeRangeResult.
正在调用 Webservice 如下:
<cfinvoke
webservice="http://www.argusmedia.com/ArgusWSVSTO/ArgusOnline.asmx?wsdl"
method="GetUpdatedPricesInDateTimeRange"
returnvariable="PricesResponse">
<cfinvokeargument name="authToken" value="#AuthToken#"/>
<cfinvokeargument name="fromDateTime" value="2017-03-01"/>
<cfinvokeargument name="toDateTime" value="2017-03-02"/>
<cfinvokeargument name="startId" value="0"/>
</cfinvoke>
任何指点都会很有帮助。
编辑 1:CFDump return 变量
编辑 2:根据 Leigh 的建议,这对我有用。
XML
PricesResponse.get_any()[2].getAsString()
XML 中有名称空间,因此 XML 搜索工作如下:
XmlSearch(XMLDoc,"//*[local-name()='Element_Name']")
根据 Leigh 的评论,returnvariable
的 get_any()
方法可用于获取基础 XML。
get_any()
returns 消息元素数组的转储。
getAsString()
get_any()
returns 预期的 XML 字符串的方法。
<cfdump var="#PricesResponse.get_any()[1].getAsString()#">
注意 :预期的 XML 可以在任一 MessageElement[] 数组元素中,而不是在第一个元素中。
注释 2:XML在 XML 中使用命名空间搜索的工作方式如下:
XmlSearch(XMLDoc,"//*[local-name()='Element_Name']")