Я пытаюсь создать компонент cf для прокси-сервера другого. На данный момент код выглядит следующим образом: (раздели ради примера):Вызывать функцию прокси
public MyFuseboxProxy function init(Required any myFb){
variables.myFusebox = arguments.myFb;
return this;
}
this.do = variables.proxy;
private any function proxy(){
var local.functionName = getFunctionCalledName();
var local.function = variables.myFusebox[local.functionName];
var local.returnVal = local.function(arguments);
...
}
Как вы можете видеть, это довольно прямо вперед. Я передаю свой целевой объект при инициализации, затем использую метод прокси для перехвата вызовов функций. Я использую cfscript и не хочу использовать cfinvoke, поэтому я использую этот подход.
Я тогда называть прокси следующим образом:
var local.proxy = new ab.MyFuseboxProxy(myFusebox);
var local.dump = local.proxy.do (action='display.body', contentvariable="body");
Однако, когда я выполняю приведенный выше код я получаю следующее сообщение об ошибке:
The ACTION argument passed to the do function is not of type string.
If the component name is specified as a type of this argument, it is possible that either a definition file for the component cannot be found or is not accessible.
The error occurred in C:/ColdFusion10/cfusion/wwwroot/fusebox5/myFusebox.cfc: line 301
Ошибка сообщается о целевом компоненте, так кажется, что функция вызывается, а аргументы передаются, но тип не сохраняется/не распознается как String.
Может ли кто-нибудь сообщить, что я делаю неправильно или как сохранить типы аргументов?
Конечно, школьник ошибка .. спасибо. – rhinds