如何使用wso2esb将数据写入文本文件

如何使用wso2esb将数据写入文本文件,wso2,wso2esb,wso2dss,Wso2,Wso2esb,Wso2dss,我从前端获取数据或字符串我在一个属性中设置数据或字符串 每次我需要在文本文件中发送的属性数据,他们将发送我需要的数据,并将数据保存在同一文件中,而不覆盖我该如何做我已经在配置文件中使用VFS transport i uncommented sender部分完成了,尽管它在配置下无法正常工作 <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse"

我从前端获取数据或字符串我在一个属性中设置数据或字符串 每次我需要在文本文件中发送的属性数据,他们将发送我需要的数据,并将数据保存在同一文件中,而不覆盖我该如何做我已经在配置文件中使用VFS transport i uncommented sender部分完成了,尽管它在配置下无法正常工作

    <?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="FileWrite"
           transports="https http"
           startOnLoad="true"
           trace="disable">
       <description/>
       <target>
          <inSequence>
             <property name="error" expression="//error/text()" scope="default"/>
             <log level="full"/>
          </inSequence>
          <outSequence>
             <log>
 <property name="error" expression="get-property('error')" scope="default"/>
                <property name="OUT_ONLY" value="true"/>
             </log>
             <payloadFactory>
                <format>
                   <error>$1</error>
                </format>
                <args>
                   <arg expression="get-property('error')"/>
                </args>
             </payloadFactory>
             <log level="full"/>
             <send>
                <endpoint>
                   <address uri="vfs:file:///home/youtility2/Desktop/Errorlog.text"/>
                </endpoint>
             </send>
             <log level="full"/>
          </outSequence>
       </target>
       <parameter name="transport.vfs.Append">true</parameter>
    </proxy> 

$1
真的

我在桌面上创建了文本文件,但数据没有写入文本文件,也没有给出任何异常,也将为此引用一些内容

您必须为代理服务启用VFS传输。在代理创建/编辑向导中,您可以选择必要的传输。在axis2.xml中启用VFS传输后,VFS将成为服务的可用传输。因此,如果要在代理服务中使用它,也应该对该特定服务启用它

因此,在代理元素中,传输属性将是transports=“https http vfs”

要附加到同一文件,请使用文件URI定义transport.vfs.append参数,如文档[2]中所述

[2]


$1
真的
  • 要使用VFS,必须在代理中将VFS设置为传输
  • 定义transport.vfs.Append参数的方式错误
  • 应该是 在URL中

    作为参数

    <parameter name="transport.vfs.ReplyFileURI">file:///home/user/test/out? transport.vfs.Append=true </parameter>
    
    file:///home/user/test/out? transport.vfs.Append=true
    
  • 配置中缺少vfs参数 有关vfs服务级别参数,请参考[1]

    我只是粗略地编辑了你的代理,试试这个

     <?xml version="1.0" encoding="UTF-8"?>
        <proxy xmlns="http://ws.apache.org/ns/synapse"
               name="FileWrite"
               transports="vfs" statistics="disable" trace="disable" startOnLoad="true">
           <description/>
           <target>
              <inSequence>
                 <property name="error" expression="//error/text()" scope="default"/>
                 <log level="full"/>
              </inSequence>
              <outSequence>
                 <log>
     <property name="error" expression="get-property('error')" scope="default"/>
                    <property name="OUT_ONLY" value="true"/>
                 </log>
                 <payloadFactory>
                    <format>
                       <error>$1</error>
                    </format>
                    <args>
                       <arg expression="get-property('error')"/>
                    </args>
                 </payloadFactory>
                 <log level="full"/>
                 <send>
                    <endpoint>
                       <address uri="vfs:file:///home/youtility2/Desktop/Errorlog? transport.vfs.Append=true"/>
                    </endpoint>
                 </send>
                 <log level="full"/>
              </outSequence>
           </target>
           <parameter name="transport.PollInterval">10</parameter>
           <parameter name="transport.vfs.FileURI">file:///home/youtility2/Desktop/Errorlog.text</parameter>
           <parameter name="transport.vfs.FileNamePattern">.*.xml</parameter>
           <parameter name="transport.vfs.ContentType">text/xml</parameter>
           <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
        </proxy> 
    
    
    $1
    
    下面的代码显示了将有效负载插入文件的功能。 您不需要使用vfs作为传输

    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="WriteIntoFile"
           transports="https,http"
           statistics="disable"
           trace="disable"
           startOnLoad="true">
       <target>
          <inSequence>
             <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
             <property name="transport.vfs.ReplyFileName"
                       expression="fileName.xml')"
                       scope="transport"/>
             <send>
                <endpoint>
                   <address uri="vfs:ftp://admin:admin@localhost:21/srcFolder?vfs.passive=true"/>
                </endpoint>
             </send>
          </inSequence>
       </target>
    </proxy>
    

    您也可以在wso2esb中尝试类中介程序。在java类中,使用FileWriter可以像这样写入文本文件:

    FileWriter(File file, boolean append) 
    


    我明白了这一点,但他们正在移动文本文件,但我希望将数据附加到single fileERROR中-axis2 Sender在发送消息时出现意外错误org.apache.axis2.AxisFault:VFS传输不支持同步响应。请使用适当的(仅限out)消息交换模式。我按照您的指导进行了尝试,但其给出的错误如上所述当我向端点发送数据时,我需要测试端点,但我给出上述端点时,其给出的错误测试端点不成功错误是[测试地址仅支持HTTP和HTTPS协议]这是第二个问题的含义([测试地址仅支持HTTP和HTTPS协议])尚未为VFS端点实现端点的is测试功能。我们仅支持HTTP和HTTPS端点的测试。请添加到您的插入序列中。k得到u,但当任何时候高于发送配置时,我在插入序列中添加了它的给定错误相同的配置在输出序列中没有给出错误,但没有工作输出我正在向端点发送数据我需要测试端点,当时我给出了上述端点,但其给出的错误测试端点不成功错误为[test address only supported for HTTP and HTTPS protocols],您可以按如下方式添加传输:transports=“HTTPS,HTTP,vfs”尝试用它替换现有的trasport Entry**我已经完成了但没有结果**但是当我在序列中添加了发送配置时,其给出错误在输出序列中相同的配置没有给出错误但没有工作输出。您确定消息中是否存在gvien xpath。只需使用普通请求进行尝试。
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="WriteIntoFile"
           transports="https,http"
           statistics="disable"
           trace="disable"
           startOnLoad="true">
       <target>
          <inSequence>
             <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
             <property name="transport.vfs.ReplyFileName"
                       expression="fileName.xml')"
                       scope="transport"/>
             <send>
                <endpoint>
                   <address uri="vfs:ftp://admin:admin@localhost:21/srcFolder?vfs.passive=true"/>
                </endpoint>
             </send>
          </inSequence>
       </target>
    </proxy>
    
    FileWriter(File file, boolean append) 
    
    FileWriter(String fileName, boolean append)