我有一个包含以下方法的 javascript 文件 myscript.js:
function getName(){
return "Paul Simon"
}
现在,我想从我的路由中调用这个方法。我期待使用资源构造可以在一条指令中加载脚本并在后续指令中调用该方法。类似于:
from("restlet:/Bookmarkee/boolean/v3?restletMethods=POST&restletBinding=#restletBinding")
.routeId("/Bookmarkee/boolean/v3?restletMethods=POST")
.to("language:javascript:resource:file:/C:/Users/max777/AppData/Local/Temp/7009839156674102420/myscript.js")
.to("language:javascript:getName()").to("mock:result");
但是,这是行不通的。我不断得到:
引起:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:“getName”未定义。(#1)
我究竟做错了什么?
我可以看到骆驼在日志中说它找到了文件:
读取资源:file:/C:/Users/max777/AppData/Local/Temp/8119222516029335972/myscript.js 进入内容缓存使用资源:file:/C:/Users/max777/AppData/Local/Temp/8119222516029335972/myscript来自内容缓存的.js 脚本评估结果为:sun.org.mozilla.javascript.internal.InterpretedFunction@707d7290
因此,我无法理解以下两个端点之间的语义差异是什么。在语法上,我只删除了第二个中的“资源”一词:
to("language:javascript:resource:file:/C:/Users/max777/AppData/Local/Temp/7009839156674102420/myscript.js")
to("language:javascript:file:/C:/Users/max777/AppData/Local/Temp/7009839156674102420/myscript.js")