从 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 中完全行不通,不得不走更长的路,希望有人提供可以直接实施的解决方案。
我是 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 中完全行不通,不得不走更长的路,希望有人提供可以直接实施的解决方案。