Eri*_*air 3 coldfusion arguments cfc remote-access
ColdFusion 8文档说明了有关CFARGUMENT的"required"属性的以下内容:
"当作为Web服务调用时,所有参数都是必需的,无论它们是如何定义的."
但是,我不希望ColdFusion在请求中缺少参数时抛出异常.作为请求的一部分,我想自己处理它.那么,我可以为所需参数设置默认值吗?
是的,不是.
正式地说,你不能,因为ColdFusion生成的WSDL在XML中留下了一个重要的要求,它是允许不传递可选参数所必需的.该属性为"minOccurs".因此,虽然设置"默认"属性(以及值)完全有效 - 但您永远无法将其设置为"required = false"并利用默认值,因为远程方法总是需要传递一些东西.
但是,有是一个办法非官方设置可选参数,并根据需要设置其默认值:
使用最后的标准"?wsdl"参数为您的CFC生成WSDL,并将代码保存到自己的文档中.
找到您要定义的可选参数:
Run Code Online (Sandbox Code Playgroud)<element name="test"> <complexType> <sequence> <element name="a" type="xsd:string"/> <element name="b" type="xsd:string"/> <element name="c" type="xsd:double"/> <element name="d" type="xsd:boolean"/> </sequence> </complexType> </element>
并添加"minOccurs"属性,将其设置为0:
<element name="test">
<complexType>
<sequence>
<element name="a" type="xsd:string"/>
<element name="b" type="xsd:string"/>
<element name="c" type="xsd:double" minOccurs="0"/>
<element name="d" type="xsd:boolean" minOccurs="0"/>
</sequence>
</complexType>
</element>
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)<cfinvoke webservice="http://localhost/mysavedwsdl.cfm" returnvariable="result" method="runTest"> <cfinvokeargument name="a" omit="no" value="test123" /> <cfinvokeargument name="b" omit="no" value="test456" /> <cfinvokeargument name="c" omit="yes" /> <cfinvokeargument name="d" omit="yes" /> </cfinvoke>
来源:使用可选参数调用ColdFusion Web服务时出现的问题.
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |