在Mule服务器下运行以下流时,位于C:\ vikas \ file位置的Message.xml文件已成功移动到C:\ vikas \ file \ error位置。
<flow name="Demo" doc:name="Demo">
<file:inbound-endpoint path="C:\vikas\file\"
responseTimeout="10000" doc:name="File" />
<file:outbound-endpoint path="C:\vikas\file\error"
outputPattern="#[function:datestamp:dd-MM-yy]_#[function:systime].xml"
responseTimeout="10000" doc:name="ErrorQueue" />
</flow>
但是,在JUnit测试下运行时,会在C:/ vikas / file位置创建913d4c34-c754-11e2-8cfb-696bc9376bf8.dat文件。为什么Message.xml没有复制到C:\ vikas \ file \ error位置?如何解决?
@Test
public void testFile() throws Exception {
String fileInputPath = "file://C:/vikas/file";
String payload = IOUtils.getResourceAsString(
"Message.xml", this.getClass());
client.dispatch(fileInputPath, payload, null);
MuleMessage result = client.request(
"file://C:/vikas/file/error", 5000);
}
答案 0 :(得分:1)
我在client.dispatch()方法之后添加Thread.sleep后修复了它。
@Test
public void testFile() throws Exception {
String fileInputPath = "file://C:/vikas/file";
String payload = IOUtils.getResourceAsString(
"Message.xml", this.getClass());
client.dispatch(fileInputPath, payload, null);
Thread.sleep(685000);
MuleMessage result = client.request(
"file://C:/vikas/file/error", 5000);
}
由于dispatch是异步方法,Mule需要一些等待时间来完成文件移动过程。