Mule文件传输从Windows SMB共享中读取文件

时间:2014-02-12 16:25:47

标签: windows file mule smb transport

我正在尝试将文件写入Windows SMB共享。 Mule文件传输文档说我应该能够访问Windows位置,如下所示: 文件:////192.168.0.1/temp/

这是我的骡子流:我想知道是否有解决方案。谢谢!

<file:outbound-endpoint   responseTimeout="10000" doc:name="File" address="file:////<IPAddress>/ShareName/" outputPattern="hello.xml"/>

我收到以下错误:

Message               : Streaming failed. Could not get output stream. Failed to route  event via endpoint: DefaultOutboundEndpoint{endpointUri=file:////<IPAddress>/ShareName/,    connector=FileConnector
{
name=connector.file.mule.default
lifecycle=start
this=2b1f76e1
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=true
supportedProtocols=[file]
serviceOverrides=<none>
}
,   name='endpoint.file.<IPAddress>.ShareName', mep=ONE_WAY, properties=  {outputPattern=hello.xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000,   endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type:   String
Code                  : MULE_ERROR-42999
--------------------------------------------------------------------------------
Exception stack is:
1. No such file or directory (java.io.IOException)
java.io.UnixFileSystem:-2 (null)
2. Streaming failed. Could not get output stream. Failed to route event via endpoint:  DefaultOutboundEndpoint{endpointUri=file:////<IPAddress>/ShareName/, connector=FileConnector
{
name=connector.file.mule.default
lifecycle=start
this=2b1f76e1
numberOfConcurrentTransactedReceivers=4
createMultipleTransactedReceivers=true
connected=true
supportedProtocols=[file]
serviceOverrides=<none>
}
,  name='endpoint.file.<IPAddress>.ShareName', mep=ONE_WAY, properties={outputPattern=hello.xml}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type:     String (org.mule.api.transport.DispatchException)
org.mule.transport.file.FileConnector:569    (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.io.IOException: No such file or directory
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at org.mule.util.FileUtils.createFile(FileUtils.java:93)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

1 个答案:

答案 0 :(得分:1)

在Windows操作系统上执行Mule时,使用文件传输访问UNC路径。

由于您似乎在Unix机器中,因此必须使用CIFS / SMB协议。 有一个名为mule-transport-cifs的社区支持模块可以帮助您解决此问题。

将此模块添加到项目后,您应该可以通过将文件outbound-enpdoint转换为类似的内容来使用它。

<smb:outbound-endpoint host="<IPAddress>" user="username" password="secret" path="/ShareName" outputPattern="hello.xml"/>