我正在尝试按如下方式调用方法:
<cfinvoke component="#variables.target#"
method="#arguments.methodName#"
argumentcollection="#arguments.args#"
returnvariable="rtn">
</cfinvoke>
但是,我收到以下错误:
无法调用CFC - “param_value”的数据必须不超过 100个字符。“ faultDetail: ''
变量arguments.args
是一个结构,其中一个元素如下所示:
{
param_name: 'property_uid',
param_value : '00000000-0000-0000-0000-0000000213131200,00002131300-0000-0000-0000-000000000000,00000000-0000-0000-0000-0000000002122,00000000-0000-0000-0000-000000032242
}
我知道问题是由这个元素引起的,但不知道如何修复它。 请注意,我已经在CF管理员中将最大POST请求参数数从100更新为300。
答案 0 :(得分:0)
变量property_uid
当前是一个列表,列表的值太长,无法作为结构键的值传入。使用listToArray()
将数据作为数组发送。如果您需要再次将数据作为列表,请在函数内部使用arrayToList()
将其转换回来。
答案 1 :(得分:0)
请检查调用函数的代码(函数名称可以在arguments.methodName
组件的变量variables.target
中找到。)
查找标记<cfparam name="param_value" ...>
并检查是否定义了maxlength
属性。它可能设置为100
,因此如果您将超过100个字符传递给所述参数,则会导致ColdFusion抛出异常。
限制为100个字符可能是您身边的设计决策(数据库方案?),所以您需要自己解决这个问题。