任何人都可以建议我如何从一个文件中读取数据并将其添加到邮件存储区。
我正在尝试在ESB中开发一个消息重发功能。
想法:
消息从一个代理服务转到目标点
将邮件保存在不同的文件中(每个文件一封邮件)。
编写另一个代理服务,该服务将从文件夹中的所有文件中读取内容并将其放入邮件存储中。
现在处理器将位于商店的顶部,将从商店发送到目的地点。
此致 马赫什
答案 0 :(得分:1)
ActiveMQ中的消息存储“MyStore”:
<messageStore xmlns="http://ws.apache.org/ns/synapse" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" name="MyStore">
<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="store.jms.cache.connection">false</parameter>
<parameter name="java.naming.provider.url">failover:tcp://localhost:61616</parameter>
<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
</messageStore>
消息处理器:从商店读取并向端点“MyEPR”发送消息
<messageProcessor xmlns="http://ws.apache.org/ns/synapse" class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" name="MyStoreForwarder" targetEndpoint="MyEPR" messageStore="MyStore">
<parameter name="message.processor.reply.sequence">MyReplySequence</parameter>
<parameter name="max.delivery.attempts">-1</parameter>
<parameter name="client.retry.interval">5000</parameter>
<parameter name="interval">10</parameter>
<parameter name="message.processor.fault.sequence">MyFaultSequence</parameter>
<parameter name="is.active">true</parameter>
</messageProcessor>
代理服务:在file:/// home / test中读取xml文件并将它们存储到“MyStore”中
<proxy xmlns="http://ws.apache.org/ns/synapse" name="MyProxy" transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence>
<store messageStore="MyStore"/>
</inSequence>
</target>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.FileURI">file:///home/test</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
<parameter name="transport.vfs.ContentType">application/xml; charset=ISO-8859-1</parameter>
</proxy>
答案 1 :(得分:0)
此问题是由于未在axis2.xml配置中启用vfs传输发件人。