Да и нет.
Официально вы не можете , потому что WSDL, созданный ColdFusion, оставляет в XML важное требование, которое необходимо для того, чтобы необязательные параметры не передавались. Этот атрибут "minOccurs". Таким образом, хотя для вас совершенно правильно установить атрибут «default» (вместе со значением), вы никогда не сможете установить для него значение «required = false» и использовать значение по умолчанию, поскольку удаленный метод всегда будет требовать, чтобы что-то было передано.
Однако, там есть способ неофициально установить необязательный параметр и установить его по умолчанию, если необходимо:
Сгенерируйте WSDL для вашего CFC с помощью стандартного параметра «? Wsdl» в конце и сохраните код в своем собственном документе.
Найдите аргументы, которые вы определили как необязательные:
<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>
- Вызовите ваш веб-сервис следующим образом, используя атрибут "omit" для аргументов, которые вы не хотите передавать:
<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 с необязательными аргументами.