我的本地系统上有一个文本文件我希望将数据同步附加到特定文件中。
我尝试了很多方法,但它没有用。
ESB在Oracle SOA中拥有这一未来。我们可以添加FILE ADAPTER。在ESB中,它既没有给出错误也没有给出预期的结果。
我的配置是这样的:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="FileWrite" transports="http,vfs" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence>
<log>
<property name="OUT_ONLY" value="true"/>
</log>
</inSequence>
<outSequence>
<log>
<property name="OUT_ONLY" value="true"/>
</log>
<payloadFactory>
<format>
<error>error404</error>
</format>
</payloadFactory>
<send>
<endpoint>
<address uri="vfs:file:///home/youtility2/Desktop/Errorlog"/>
</endpoint>
</send>
</outSequence>
</target>
<parameter name="transport.vfs.ReplyFileURI">file:///home/user/test/out? transport.vfs.Append=true</parameter>
<parameter name="transport.PollInterval">10</parameter>
<parameter name="transport.vfs.FileNamePattern">Errorlog.text</parameter>
<parameter name="transport.vfs.ContentType">text/xml</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.ReplyFileName">Errorlog.xml</parameter>
<description></description>
</proxy>
实际上我在outSequence
中保留了一个日志调解员。 inSequence
介体未将数据发送到outSequence
进程而不转发到outSequence
。这就是我认为上述配置不起作用的原因。
对此的任何参考?
我也尝试了inSequence
中的上述配置。它给出了这样的错误:
错误 - Axis2Sender在发送消息时出现意外错误 org.apache.axis2.AxisFault: VFS传输不支持同步响应。请用 适当的(仅限)消息交换模式
请参阅此link。
答案 0 :(得分:0)
问题是,您在日志介体中设置了一个属性,该属性是一个预定义属性(即:OUT_ONLY
),用于指示请求只是“out-only”请求。所以,系统,不会期望回复。这就是为什么,你没有得到任何你的后果。
不要在Log介体中使用预定义的属性,这会导致问题。
在日志媒体中保留一些文字以指示消息的流程。 例如:
<inSequence>
<log>
<property name="INSEQUENCEEEEEEE" value="********"/>
</log>
</inSequence>
同样明智地在后面留下不同的描述性日志,看看你是否在那里收到消息,没有任何问题。