ColdFusion的8文檔指出以下有關CFARGUMENT的「必需的」屬性:您可以爲遠程CFC功能中的參數設置默認值嗎?
「他們是如何定義的,當作爲一個Web服務調用需要的所有參數,不論」
但是,我不希望ColdFusion在請求中缺少參數時拋出異常。我想自己處理它作爲請求的一部分。那麼,我可以爲所需的參數設置一個默認值嗎?
在CF9 CFSCRIPTColdFusion的8文檔指出以下有關CFARGUMENT的「必需的」屬性:您可以爲遠程CFC功能中的參數設置默認值嗎?
「他們是如何定義的,當作爲一個Web服務調用需要的所有參數,不論」
但是,我不希望ColdFusion在請求中缺少參數時拋出異常。我想自己處理它作爲請求的一部分。那麼,我可以爲所需的參數設置一個默認值嗎?
在CF9 CFSCRIPT是,也不是。
正式,你不能,因爲ColdFusion的產生的WSDL遺漏了在必要允許可選參數不被傳遞的XML的一個重要要求。這個屬性是「minOccurs」。因此,儘管設置「default」屬性(以及值)對您來說是完全有效的,但您將永遠無法將其設置爲「required = false」並利用默認值,因爲遠程方法將永遠需要傳遞一些東西。
然而,有是辦法非官方設置可選參數,並根據需要設置其默認:「WSDL」
使用標準生成WSDL您CFC參數最後,將代碼保存到自己的文檔中。
找到你定義你想成爲可選的參數:
<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>
<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>
來源:Issues when calling a ColdFusion web service with optional arguments.
謝謝。我有一個預先構建的WSDL,所以我爲每個參數添加了default =「」。 – 2012-01-09 20:19:58
:
component // {
output='true'
{
remote function testMethod (
string argument1='testValue'
)
output='true'
{
writeOutput(arguments.argument1);
}
}
或標記,應在工作CF8:
<cffunction name="testMethod">
<cfargument name="arg1" type="string" default="default">
</cffunction>
他正在CF8上工作,而CF8的發佈代碼無效。我知道,因爲那是我的第一個答案,然後我回去測試它......並且失敗了。 – 2012-01-09 16:55:10
奇怪,我只是嘗試這樣一個CF8服務器上,它工作得很好:
奔,則有參數設置爲 '需要= 「真」', OP正在請求有關您是否有可選參數的信息,該參數將爲'required =「false」'。嘗試將其翻轉爲false,設置默認參數,然後重試。您最終應該看到有關無效參數的錯誤。 – 2012-01-09 18:15:29
樣子 http://stackoverflow.com/questions/6326873/coldfusion-web-service-問題/ 6327300#6327300 – 2012-01-10 09:57:53