如何在WSO2 ESB中动态更改vfs文件URI?

如何在WSO2 ESB中动态更改vfs文件URI?,wso2,wso2esb,vfs,Wso2,Wso2esb,Vfs,我有一个带有路径文件的参数: <parameter name="transport.vfs.FileURI">file:///Users/Desktop/test/in</parameter> file:///Users/Desktop/test/in 我需要动态更改FileURI值,例如,使用以前设置的属性值。诸如此类: <parameter name="transport.vfs.FileURI">get-property('path')</pa

我有一个带有路径文件的参数:

<parameter name="transport.vfs.FileURI">file:///Users/Desktop/test/in</parameter>
file:///Users/Desktop/test/in
我需要动态更改FileURI值,例如,使用以前设置的属性值。诸如此类:

<parameter name="transport.vfs.FileURI">get-property('path')</parameter>
get属性('path')
或者:

<parameter name="transport.vfs.FileURI" expression="get-property('path')"/>


如何更改属性值的FileURI值?

据我所知,在ESB 4.8.1中,您不能在中介中动态更改此参数(此值是静态的)

也许您可以尝试在运行时动态更改此代理定义:

  • 使用管理服务(ProxyServiceAdmin)
  • 或者在java或javascript中(使用mc.getConfiguration(),您可以访问synapse配置)
另一种解决方案是使用计划任务:

  • 开发自定义任务,请参见
  • 使用文件连接器,请参见

在wso2esb4.8.1中动态更改vfs端点

例如: 我们通过属性中介“fname”获取文件名


我们通过属性中介动态地获得“路径”

<property name="path" value="file:///D:/FileFolder/In/"/> 

我们正在“transport.vfs.ReplyFileName”属性中添加路径和文件名

<property name="transport.vfs.ReplyFileName" expression="concat(get-property('path'),get-property('fname'))" scope="transport"/>

<send>
        <endpoint>
            <address uri="vfs:file:///D:/Folder/In"/>
        </endpoint>
</send>

“transport.vfs.ReplyFileName”将替换发送中介vfs端点

我们可以实现动态端点。
我们可以通过属性中介来移动文件。我们可以很容易地更改属性。

我认为最好的方法是将这些值存储在数据库中并从数据服务加载,然后您可以将它们作为属性放置和使用。

我们可以通过使用头中介器和默认端点的组合来实现这一点。 路径是双向路径,例如(D:/Test/Image) 文件名是实际文件(testImage.png)

**
**
默认端点将从“到”传输头查找端点url。因此,可以动态构造端点并将其设置为“to”头

仅供参考,

<property name="transport.vfs.ReplyFileName" expression="concat(get-property('path'),get-property('fname'))" scope="transport"/>

<send>
        <endpoint>
            <address uri="vfs:file:///D:/Folder/In"/>
        </endpoint>
</send>
**<property expression="concat('vfs:file:///',$ctx:PATH,'/',$ctx:FILENAME)" name="localpath" scope="default" type="STRING"/>
 <header expression="get-property('localpath')" name="To" scope="default"/>
<property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
 <call/>**