我了解到您想从文件中读取数据
为此,您只需要声明一个 VFS 代理:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="IncomingFile" transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
<target inSequence="YourSequence" />
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.FileURI">file:///Your_directory</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file:///Your_directory_OK</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file:///Your_directory_KOKO</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
<parameter name="transport.vfs.ContentType">text/plain; charset=ISO-8859-1</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
</proxy>
不要忘记在 repository/conf/axis2/axis2.xml 中启用 VFS 传输接收器:
<transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/>
与您的axis2 conf中的text/plain关联的消息构建器将用于构建消息(默认为org.apache.axis2.format.PlainTextBuilder:文本内容将被封装到一个xml节点中)
您可能想要开发和使用自己的消息构建器,以便将特定文件格式转换为特定的 xml 树,以便在中介中使用 XPath。
另一种方法是使用smooks。