我想从作为web服务使用的cfc中调用cfc。web服务只是向调用者返回一个状态通知,但是我需要启动另一个cfc来启动一些进程,打开一个ftp获取一个文件并将其下载到我们的服务器。目前我得到了这个错误。操作GetFile原因550无法打开文件。详细错误:550无法打开文件。.消息FTP GetFile操作过程中出现错误。打开文件。.
当我从一个url直接调用流程cfc或从另一个页面调用时,它工作正常。任何帮助都将不胜感激。
Web服务代码:
<cfargument name="FileName" required="yes" type="string">
<cfargument name="BatchNumber" required="yes" type="numeric">
<cfargument name="LOGIN_USERID" required="yes" type="string">
<cfargument name="LOGIN_PASSWORD" required="yes" type="string">
<cfset comparison = Compare(LOGIN_PASSWORD, "xxxxxxx")>
<cfif (LOGIN_USERID EQ "myid") AND (comparison EQ 0)>
<cfset xmlDoc = XmlNew()>
<cfset xmlDoc.XMLRoot = XMLElemNew(xmlDoc,"batchfiles")>
<cfset xmlDoc.batchfiles.XmlChildren[1] = XmlElemNew(xmlDoc,"batch")>
<cfset arrayappend(xmlDoc.batchfiles.XmlChildren[1].xmlChildren, XmlElemNew(xmlDoc,"batchnumber"))>
<cfset xmlDoc.batchfiles.XmlChildren[1].batchnumber.XMLText="#batchnumber#">
<cfset arrayappend(xmlDoc.batchfiles.XmlChildren[1].xmlChildren, XmlElemNew(xmlDoc,"filename"))>
<cfset xmlDoc.batchfiles.XmlChildren[1].filename.XMLText="#filename#">
<cfset arrayappend(xmlDoc.batchfiles.XmlChildren[1].xmlChildren, XmlElemNew(xmlDoc,"status"))>
<cfset xmlDoc.batchfiles.XmlChildren[1].status.XMLText="Notification Received OK">
<cfinvoke component="ImportRCMOrders" method="GetRCMOrderFiles">
<cfinvokeargument name="FileName" value="#filename#">
<cfinvokeargument name="BatchNumber" value="#batchnumber#">
</cfinvoke>
<cfreturn xmlDoc>
<cfelse>
<cfoutput>Unauthorized Access. Please check username / password and ty again.</cfoutput>
<cfabort>
</cfif>
整个错误:操作GetFile原因550无法打开文件。详细信息错误:550无法打开文件。消息FTP GetFile操作期间出错。StackTrace coldfusion.tagext.net。FtpHandler$FtpOperationException:FTP GetFile操作期间出错。coldfusion.tagext.net.FtpHandler.checkError(FtpHander.java:189),位于coldfusion.tagext.net.FtpHandler.getFile(FtpHandler.java:682),位于cfImportRCMOrders2ecfc184096832$funcGETRCMORDERFILES.runFunction(C:\inetpub\wwroot\imarkwebservice\rcm \dynamic\ImportRCMOrders.cfc:56)coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMeth.java:420)。coldfusion.runtime处的UDFMethosd$ArgumentCollectionFilter.iinvoke(UDFMethod.java:383),coldfussion.runtime.FunctionAccessFilter.inavoke(FunctionAccessFilter.java:95)coldfusion.runtime.UDFMethod.invoke(UDFMeth.java:533)位于coldfusion.runtime。TemplateProxy.invoker(TemplateProx.java:648)位于coldpusion.rntime(C:\inetpub\wwwroot\imarkwebservice\rcm\dynamic\cfc_init.cfm:14)在coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:246)在coldpusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:736)在coldwusion.tageext.lang.IncludeTag.doStartTag(IncludeTag.java:572)在colddusion.filter.CfincludeFilter.invoker(Cfinclude filter.java:65)在coldmusion.IpFilter.iinvoke(IpFilter)。java:45)在coldfusion.filter.ApplicationFilter.invoke处的coldfussion.filter.RequestMonitorFilter.iinvoke(RequestMontorFilter.java:42)处的coltfusion.filter.MonitoringFilter.inavoke(MonitoringFilter.java:40)处的coldfusion.pfilter.PathFilter.in voke(PathField.java:142)处coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePerssistenceField.java:28)处的coldfusion。filter.BrowserFilter.inavoke(BrowserFilter.java:38)处的coldfusion.pilter.NoCacheFilter.iinvoke(NoCacheField.ja:58)处的位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)处的coldfusion.CfmServlet.service(CfmServlet.java:219)处的位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)的coldfusion.bootstrap.BootstrapFilter.doFilterorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWapperValve.java:220),位于org.apacher.catalina.core.StanStandardContextValve.iinvoke(标准上下文阀.java:122),位于.org.apache.coatalina.authenticator.Authenticattor.AutheenticatorBase.invok(AuthentiatorBase.java:501)(ErrorReportValve.java:102)位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineeValve.ja:116),位于org.aaphe.catarina.connector.CoyoteAdapter.service(CoyoteAdepter.java:422),位于.org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199),位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEnppoint.java:314),位于java.util.concurrent.ThreadPoolExecutor。java.util.concurrent.ThreadPoolExecutor$Worker处的runWorker(未知源)。org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61),java.lang.Thread。运行(未知源)
获取RCMOrder文件:
<!--- Open FTP connection --->
<cfftp connection ="FTPRequest"
action ="OPEN"
username ="xxxxxx"
password ="xxxx"
server ="ftp.server.com"
stopOnError ="Yes"
timeout="36000">
<!--- List directories --->
<cfftp connection = "FTPRequest"
action = "LISTDIR"
stopOnError = "Yes"
name = "ftpQuery"
directory = "#arguments.ftpOrdersDir#">
<!--- Download ftp files --->
<cfif ftpQuery.recordcount GT 0>
<cfif ftpQuery.Name EQ arguments.filename>
<cfset extension = LCase(listLast(arguments.filename,".")) >
<cfif extension EQ 'csv'>
<cftry>
<!--- Download ftp files --->
<cfftp connection = "FTPRequest"
action = "GetFile"
name = "dlFiles"
remotefile="#ftpOrdersDir##arguments.filename#"
localfile="#ExpandPath('/mydir/dynamic/orders/'& arguments.filename)#"
failifexists="no"
stoponerror="yes">
<!--- Rename files in ftp processed dir --->
<cfftp connection = "FTPRequest"
action = "RENAME"
existing="#arguments.ftpOrdersDir##arguments.filename#"
new="#arguments.ftpOrdersDir##arguments.filename#.#DateFormat(Now(), 'mmddyyyy')##Hour(Now())##Minute(Now())##Second(Now())#"
stopOnError = "Yes">
<cfcatch type="any">
<cfmail type="html"
to="email@myemailacct.com"
from="FTPProcess@myemailacct.com"
subject="FTP Error">
<p> An error occurred on #DateFormat( Now(), "mmm d, yyyy" )# at #TimeFormat( Now(), "hh:mm TT" )# </p>
Error Message: #cfcatch.message#<br>
Error Detail: #cfcatch.detail#<br>
Error Location: #GetBaseTemplatePath()#<br>
<cfdump var="#cfcatch#">
</cfmail>
<cfabort>
</cfcatch>
</cftry>
</cfif>
这是来自称为 Web 服务的第一个函数。结构:批号 35506 文件名batchfile_35506.csv LOGIN_PASSWORD密码LOGIN_USERID用户标识
结构 批号 35506 文件名 batchfile_35506.csv FTPORDERSDIR /Dir/35506/
来自FTP客户端的550表示该文件或目录不存在。请检查您的路径是否正确,并且该文件确实存在于该路径上,并且您登录的用户(在FTP调用中)对该文件具有权限。
我假设 GetRCMOrderFiles() 函数正在尝试从 FTP 检索文件?
您还应该将这些作为异常来捕获,并在执行get之前检查该文件是否存在。
我需要调用WildFly 8上可用的JAX-WS Web服务。我从一个简单的例子开始。这是我的网络服务: WSDL 可在以下网址获得: http://localhost:8080/DemoWS/HelloWorld?wsdl 看看Tomcat-CXF的例子,我编写了以下路由: 通过在 Camel 上下文中运行上述代码,将返回以下错误: serviceClass=com.sample。HelloWo
JSON似乎打印到浏览器窗口,所以我不完全确定这种方法有什么问题?请谁能提供一些帮助,为什么这可能不起作用? 谢谢
我对从web服务调用jasper报告有问题。 我使用这个URL http://host:port/jasperserver[-pro]/rest_v2/reportexecutions获取请求id,输出类似于下面的XML。 现在我正尝试通过以下url运行jasper报表 http://localhost:8080/jasperserver/rest_v2/reportexecutions/7818
我在Scala上使用Play 2.5,我创建了一个类,可以多次调用外部web服务。 外部Web服务在某些条件下被调用并得到ok或nok的简单响应。如果可以,那么我应该更新内部对象状态,如果可以,我现在什么也不做。 这是我的类,它将String的列表作为参数,并返回要在控制器中处理的对象的Future列表。 是列表类型的列表,但我希望它只是一个简单的响应列表。 1)如何简化和纠正我的代码以获得响应列
问题内容: 我有一个带有按钮的HTML页面。当我单击该按钮时,我需要调用REST Web服务API。我尝试在任何地方在线搜索。毫无头绪。有人可以给我牵头/抢先吗?非常感谢。 问题答案: 我很惊讶没有人提到新的FetchAPI,在撰写本文时,除IE11之外,所有浏览器都支持该API。它简化了您在其他许多示例中看到的XMLHttpRequest语法。 API包含更多内容,但从方法开始。它有两个参数
我对webservice世界相对来说是个新手,我的研究似乎让我困惑而不是启发,我的问题是我得到了一个库(jar),我必须用一些webservice功能来扩展它。 这个库将共享给其他开发人员,在jar中的类中,将有一个调用webservice的方法的类(该方法实质上设置类的属性,执行一些业务逻辑,如将对象存储在db中等,并将对象与这些修改一起发回)。我希望对这个服务的调用尽可能简单,希望尽可能简单,