我正在开发m子流程,其中m子进程必须将文件(从源目录)上传到SFTP服务器。
IN文件夹(此文件夹包含要传输到SFTP的文件)
我的below子流量低于
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:sftp="http://www.mulesoft.org/schema/mule/sftp" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
<flow name="sftpFlow1">
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="30" startDelay="10" timeUnit="SECONDS"/>
<logger message="Hi" level="INFO" doc:name="Logger"/>
</poll>
<flow-ref name="sftpSub_Flow" doc:name="Flow Reference"/>
</flow>
<sub-flow name="sftpSub_Flow">
<file:outbound-endpoint path="D:\IN" responseTimeout="10000" doc:name="File"/>
<sftp:outbound-endpoint exchange-pattern="one-way" host="host" port="port" path="sftppath" user="user" password="password" responseTimeout="10000" doc:name="SFTP"/>
</sub-flow>
</mule>
问题: 我没有看到任何错误或异常,但预期IN文件夹中的文件没有传输SFTP服务器。每当子流执行时,我都会看到****。dat文件。
有什么建议吗?
答案 0 :(得分:1)
这里您已经使用了两个出站端点。您需要文件入站端点组件才能从源位置选择文件。 请参阅下面的样本以进一步了解 https://dzone.com/articles/anypoint-file-connector-with-mulesoft
您可以在sftpoutbound端点中使用outputPattern属性来更改具有任何扩展名的文件名
答案 1 :(得分:0)
由于该应用程序实际上未显示任何输入,因此我假设该示例存在缺陷,但实际的应用程序具有一些以流模式读取的入站终结点(例如,文件入站终结点)。子流尝试消耗两次输入流以输出到两个出站端点。因为第一个消耗了流,第二个消耗了SFTP,SFTP获得了一个消耗的空流作为输入,因此它不输出任何内容。一种解决方案是将输入转换为内存中的某些内容,例如使用对象到中间的字节数组转换器。请注意,对于大文件,这样做可能会耗尽内存。