Coldfusion 标记CFFTP的属性验证错误。它具有无效的属性组合

Coldfusion 标记CFFTP的属性验证错误。它具有无效的属性组合,coldfusion,sftp,cfftp,Coldfusion,Sftp,Cfftp,我正在尝试对SFTP服务器执行cfscript中的getFile,在工作了一整天之后,我来到这里,希望至少能得到一些提示 下面是我的脚本: LOCAL.fileName = lsDateFormat(now(), 'yyyymmdd') & '.csv'; LOCAL.filePath = "example_path\#LOCAL.fileName#"; LOCAL.ftpService = new FTP(); LOCAL.ftpService.setServer('sftp.ex

我正在尝试对SFTP服务器执行cfscript中的
getFile
,在工作了一整天之后,我来到这里,希望至少能得到一些提示

下面是我的脚本:

LOCAL.fileName = lsDateFormat(now(), 'yyyymmdd') & '.csv';
LOCAL.filePath = "example_path\#LOCAL.fileName#";

LOCAL.ftpService = new FTP();

LOCAL.ftpService.setServer('sftp.example.com');
LOCAL.ftpService.setPort('22');
LOCAL.ftpService.setUserName('example_user');
LOCAL.ftpService.setSecure('true');
LOCAL.ftpService.setKey("example_privateSSH.ppk");
LOCAL.ftpService.setStopOnError(true);
LOCAL.ftpService.setRemoteFile('example_r_file');

LOCAL.ret = LOCAL.ftpService.open();

writeDump(LOCAL.ret);

LOCAL.doInsert = 0;

if(LOCAL.ret.getPrefix().succeeded){
    LOCAL.testExists = LOCAL.ftpService.existsFile();
    writeDump(LOCAL.testExists);
    if(LOCAL.testExists.getPrefix().succeeded){
        LOCAL.doInsert = 1;
        LOCAL.ftpService.setLocalFile(LOCAL.filePath);
        LOCAL.ftpService.setFailIfExists(false);
        LOCAL.resp = LOCAL.ftpService.getFile();
        writeDump(LOCAL.resp);
    }
}

LOCAL.ftpService.close();
与服务器的连接:确定

ExistsFile测试:正常

GetFile:KO

我得到以下信息:

标记CFFTP的属性验证错误。它具有无效的属性组合:action、failifexists、key、localfile、port、remotefile、server、stoponerror、username。可能的组合有:
  • 必需的属性:“操作、本地文件、密码、远程文件、服务器、用户名”。可选属性:“agentname、asciiextensionlist、属性、缓冲区大小、failifexists、指纹、被动、端口、proxybypass、proxyserver、结果、retrycount、安全、stoponerror、超时、传输模式”
  • 必需的属性:“操作、本地文件、密钥、远程文件、服务器、用户名”。可选属性:“agentname、asciiextensionlist、属性、缓冲区大小、failifexists、指纹、密码短语、端口、proxybypass、proxyserver、结果、retrycount、安全、stoponerror、超时、传输模式”
  • 必需的属性:“操作、连接、本地文件、远程文件”。可选属性:“agentname、asciiextensionlist、属性、缓冲区大小、failifexists、指纹、被动、密码、端口、proxybypass、proxyserver、结果、retrycount、安全、服务器、stoponerror、超时、传输模式、用户名”

    堆栈跟踪

    coldfusion.tagext.validation.IllegalAttrConfigException: Attribute validation error for tag CFFTP.
    at coldfusion.tagext.validation.TagAttrConfiguration.validate(TagAttrConfiguration.java:212)
    at coldfusion.tagext.validation.TagAttrConfiguration.validate(TagAttrConfiguration.java:165)
    at coldfusion.tagext.validation.CFMLTagValidator.validateAttrConfiguration(CFMLTagValidator.java:202)
    at coldfusion.tagext.GenericTag._setArguments(GenericTag.java:466)
    at cfbase2ecfc845959907$funcINVOKETAG.runFunction(C:\ColdFusion9\CustomTags\com\adobe\coldfusion\base.cfc:338)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2582)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2383)
    at cfftp2ecfc1567526491$funcINVOKETAG.runFunction(C:\ColdFusion9\CustomTags\com\adobe\coldfusion\ftp.cfc:300)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2582)
    at cfftp2ecfc1567526491$funcGETFILE.runFunction(C:\ColdFusion9\CustomTags\com\adobe\coldfusion\ftp.cfc:185)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
    at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:491)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:337)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2360)
    at cfupdate_stats_nmp2ecfm1620928340.runPage(E:\IIS\wwwroot\softVillage\Scheduled\AdminEmailing\update_stats_nmp.cfm:28)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)
    at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416)
    at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722)
    at cfApplication2ecfc2017417412$funcONREQUEST.runFunction(E:\IIS\wwwroot\softVillage\Application.cfc:56)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
    at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
    at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
    at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
    at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:491)
    at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:337)
    at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:88)
    at coldfusion.runtime.AppEventInvoker.onRequest(AppEventInvoker.java:280)
    at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:356)
    at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:94)
    at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
    at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
    at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
    at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
    at coldfusion.CfmServlet.service(CfmServlet.java:200)
    at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
    at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
    at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66) 
    
    我反复检查了我的代码,但找不到无效代码的位置。我的错在哪里?

    试试:


    LOCAL.resp=LOCAL.ftpService.getFile('example\r\u file',LOCAL.filePath,true)

    文件是否实际被检索?错误指向哪一行?将检索文件。该行的错误点为:LOCAL.resp=LOCAL.ftpService.getFile();我发现我的问题错了。getFile是“KO”,而不是“OK”。我更新了它,实际上我编辑了你的问题,并将
    KO
    更改为
    OK
    认为这是一个打字错误。因此,来自
    getFile
    操作的响应实际上是
    KO
    ?奇怪的您能否在问题中包含整个错误消息,包括任何stacktrace信息?我建议调试cfusion\CustomTags\com\adobe\coldfusion\ftp.cfc,看看哪里出了问题。听起来像是Adobe的bug,而不是“你”的bug。您最好只向
    标记编写一个包装函数,该标记使用所有传入的参数作为属性集合,而不是使用那个蹩脚的CFC。另外:您使用的是什么版本的CF?CF的版本:9.0.1