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

create a new file from payload in wso2

我是 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>

仍然没有进展。

有人可以帮我吗?

此致, 拉胡尔.

如果有人想知道我已经为此做了一个解决方法,我从我的剩余资源中调用了一个代理服务并且它起作用了。

在我的资源中,我这样调用端点

<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>

这种方法行得通,但在 resource.So 中完全行不通,不得不走更长的路,希望有人提供可以直接实施的解决方案。