是否有一种简单的方法可以将Flow配置为从类路径中读取单个文件一次?我不需要轮询文件.我只需要读取一个已知文件并将其内容设置为消息有效负载.
Dav*_*sot 23
使用set-payload
消息处理器和MEL表达式:
<set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream('my-file.abc')]" />
Run Code Online (Sandbox Code Playgroud)
小智 7
出于某种原因,我不能让David Dossot提出的解决方案起作用.我从这个答案中获得灵感,并提出了另一种解决方案
<spring:bean id="myResource" class="org.apache.commons.io.IOUtils" factory-method="toString">
<spring:constructor-arg value="classpath:path/to/myResource.txt" type="java.io.InputStream"/>
</spring:bean>
Run Code Online (Sandbox Code Playgroud)
然后你可以用以下方式使用set-payload
<set-payload value="#[app.registry.myResource]" doc:name="Set Payload"/>
Run Code Online (Sandbox Code Playgroud)
这将导致使用文件内容将有效负载设置为String.
此方法的优点是资源文件的内容只加载一次String类型的bean.因此,如果频繁执行set-payload语句,则可以提高性能.
小智 6
从Mule 3.4开始,使用解析模板转换器
<parse-template location="my-resurce.txt" doc:name="Load resource as a String"/>
Run Code Online (Sandbox Code Playgroud)
这将使事情变得更加容易.
您可能仍需要设置mime类型,具体取决于您将如何使用模板.
常见错误包括使用变换器中的完整路径,如c:\ users\myusers\mule\myfile.txt这样编译得不好.
您也可以在解析模板和Rich文本中使用Mule Expression.
http://www.mulesoft.org/documentation/display/current/Parse+Template+Reference
归档时间: |
|
查看次数: |
18039 次 |
最近记录: |