我们可以在wso2esb的文本文件中存储一个字符串吗?

时间:2013-04-05 06:24:31

标签: wso2 wso2esb wso2dss

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

我尝试了很多方法,但它没有用。

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

1 个答案:

答案 0 :(得分:0)

问题是,您在日志介体中设置了一个属性,该属性是一个预定义属性(即:OUT_ONLY),用于指示请求只是“out-only”请求。所以,系统,不会期望回复。这就是为什么,你没有得到任何你的后果。 不要在Log介体中使用预定义的属性,这会导致问题。

在日志媒体中保留一些文字以指示消息的流程。 例如:

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

同样明智地在后面留下不同的描述性日志,看看你是否在那里收到消息,没有任何问题。