首页 文章

在wso2中从payload创建一个新文件

提问于
浏览
0

我是wso2的新手,并在一些POC上工作,我必须在某个位置创建一个文件,我已经查看了所有vfs示例,其中始终处理文件并将其写入新位置 .

我想要实现的是通过序列中接收的内容将新文件写入目录 .

对于我的需求流程,我已经公开了一个REST服务,它调用了这个序列 .

序列配置如下 .

<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="FileWriteSequence">
<clone>
    <target>
        <sequence>

            <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
             <property name="transport.vfs.ReplyFileName" value="myOutputFile.txt" scope="transport" type="STRING"/>
            <send>
                <endpoint name="FileEpr">
                    <address uri="vfs:file://D:/Tools"/>
                </endpoint>
            </send>
        </sequence>
    </target>
</clone>

此序列根据REST资源的最新消息创建文件,但文件名始终是项目名称 .

无论我尝试什么,它都不会改变 .

我已经尝试将下面显示的其他代理参数作为属性放在我的序列之上 . 而不是参数我将它们传递到属性 <property name="OUT_ONLY" value="true" scope="default" type="STRING"/> 上面 . 即: -

<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://D:/Tools</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file://D:/backup</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>

仍然没有进展 .

有人能帮我一下吗?

此致,拉胡尔 .

1 回答

  • 0

    如果有人想知道我为此做了一个解决方法我从我的其余资源调用代理服务,它工作 .

    在我的资源中,我这样称为 endpoints

    <send> <endpoint key="FileProxyEndPt"/> </send>

    然后我创建了一个代理服务,如下所示

    <proxy xmlns="http://ws.apache.org/ns/synapse" name="FileWriteProxy"
    transports="http https vfs" startOnLoad="true" trace="enable">
    <target>
        <inSequence>
    
            <clone>
                <target sequence="FileWriteSequence" />
            </clone>
        </inSequence>
        <outSequence />
        <faultSequence />
    </target>
    <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
    <parameter name="transport.vfs.MoveAfterProcess">file://D:/Tools</parameter>
    <parameter   name="transport.vfs.MoveAfterFailure">file://D:/backup</parameter>
    <parameter name="transport.vfs.ContentType">text/plain; charset=ISO-8859-1</parameter>
    <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
    

    这种方式它起作用但从未在资源中完全工作 . 所以必须采取更长的路线,希望有人提供可以直接实施的解决方案 .

相关问题