如何使用文件入站端点处理从MuleClient.dispatch()获得的文件名作为有效负载

如何使用文件入站端点处理从MuleClient.dispatch()获得的文件名作为有效负载,mule,Mule,下面是我的文件入站端点配置。它正在处理指定路径上可用的所有.edi文件 我从spring应用程序向该端点发送一个事件,如下所示 muleClient.dispatch(“file://D:/test docs/in”,inputFileName, 无效) 我将输入文件名作为message1.edi传递。我想将文件入站点限制为处理单个文件,其名称在dispatch()中作为有效负载对象发送 是否可以使用文件入站端点 dispatch()是一个异步方法。我想暂停当前线程,直到收到dispatc

下面是我的文件入站端点配置。它正在处理指定路径上可用的所有.edi文件

我从spring应用程序向该端点发送一个事件,如下所示

muleClient.dispatch(“file://D:/test docs/in”,inputFileName,
无效)

我将输入文件名作为message1.edi传递。我想将文件入站点限制为处理单个文件,其名称在dispatch()中作为有效负载对象发送

是否可以使用文件入站端点


dispatch()是一个异步方法。我想暂停当前线程,直到收到dispatch()的答复。现在我正在使用thread.sleep()。有更好的方法吗?

我可能没有抓住要点:-)但是我认为调度不是您想要使用的。 要在mule文件侦听器上触发事件,请将message1.edi复制到文件夹file://D:/test docs/in中

mule将拾取文件并进行处理

另外,我认为mule文件端点不支持动态更改regex,如果您想动态更改文件,那么就使用muleClient.dispatch触发流(“file://D:/test docs/in”,inputFileName,null);并使用groovy组件读取触发器中名为的进程文件

def fileContent = new File("file://D:/test docs/in/" + inputFileName).text
return fileContent

如果不是文本文件,请根据进行调整

不需要入站端点。您需要使用MuleClient的
请求
方法按需获取自定义文件内容:

muleClient.request('file://D:/test docs/in', -1);

对不起,我本来可以发布整个骡子流代码的。 下面是我的骡子流程:




我的要求是: 我将从spring控制器向入站端点发送.edi文件名。它将从文件夹中的D:\smooks\test docs\读取文件,并将其转换为xml文件。 文件出站端点将xml文件放在D:\smooks\test docs\out文件夹中。 在SpringController中,我应该能够读取xml文件并创建dom源代码

xmlDocument=builder.parse(documentRootPath+outputFileName);
Source Source=新的DOMSource(xmlDocument)

要从spring控制器请求mule,我使用mule客户端

muleClient.dispatch(“file://D:/smooks/test docs/in”,inputFileName,null);
message=muleClient.request(“file://D:/smooks/test docs/out”,

100000);

这是对您问题的回答吗?