1

我的本地系统上有一个文本文件,我希望将数据同步附加到特定文件中。

我尝试了很多方法,但它不起作用。

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中介没有将数据发送到未转发到的进程outSequenceoutSequence。这就是为什么我认为上述配置不起作用的原因。

这有什么参考吗?

我也试过上面的配置inSequence。它给出了这样的错误:

错误 - Axis2Sender 在向 org.apache.axis2.AxisFault 发送消息期间出现意外错误:VFS 传输不支持同步响应。请使用适当的(仅输出)消息交换模式

请参考此链接

4

1 回答 1

0

问题是,您正在日志调解器中设置一个属性,该属性是一个预定义的属性,(即:)OUT_ONLY用于指示请求只是“仅限外”请求。因此,系统不会期望得到响应。这就是为什么,你没有得到任何东西。不要使用 Log mediator 中的预定义属性,这会导致问题。

在日志中保留一些文本以指示消息的流向。例如:

  <inSequence>
        <log>
           <property name="INSEQUENCEEEEEEE" value="********"/>
        </log>
     </inSequence>

同样明智地在 outsequence 中保留不同的描述性日志,看看您是否在那里收到消息,没有任何问题。

于 2013-04-05T15:35:13.907 回答