1

在 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);
}
4

1 回答 1

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 需要一些等待时间来完成文件移动过程。

于 2013-05-28T12:47:40.007 回答