我想让WSO2 ESB递归扫描本地文件夹,如果目录包含xml中未包含的文件,esb应该扫描目录中的xml格式文件(.info.xml左右)文件,esb应该执行数据库操作并将有关新文件的信息添加到xml文件中。
但是我如何让序列做到这一点,更重要的是,我需要一个入站序列吗?它应该做什么?
答案 0 :(得分:1)
是的,您可以使用文件连接器search操作来执行此操作。
<fileconnector.search>
<source>{$ctx:source}</source>
<filePattern>{$ctx:filePattern}</filePattern>
<recursiveSearch>{$ctx:recursiveSearch}</recursiveSearch>
<setTimeout>{$ctx:setTimeout}</setTimeout>
<setPassiveMode>{$ctx:setPassiveMode}</setPassiveMode>
<setSoTimeout>{$ctx:setSoTimeout}</setSoTimeout>
<setUserDirIsRoot>{$ctx:setUserDirIsRoot}</setUserDirIsRoot>
<setStrictHostKeyChecking>{$ctx:setStrictHostKeyChecking}</setStrictHostKeyChecking>
</fileconnector.search>
filePattern:要搜索的文件的模式(例如,[a-zA-Z] [a-zA-Z] *。(txt | xml | jar))。
请查看here以了解搜索操作的示例用例。
答案 1 :(得分:1)
您可以下载连接器[1]并按照链接[2]添加和启用连接器,然后创建代理[3]。
文件搜索操作的示例代理[4]。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="FileConnector_search"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="https,http">
<target>
<inSequence>
<property expression="json-eval($.source)" name="source"/>
<property expression="json-eval($.filePattern)" name="filePattern"/>
<property expression="json-eval($.recursiveSearch)" name="recursiveSearch"/>
<fileconnector.search>
<source>{$ctx:source}</source>
<filePattern>{$ctx:filePattern}</filePattern>
<recursiveSearch>{$ctx:recursiveSearch}</recursiveSearch>
</fileconnector.search>
<respond/>
</inSequence>
</target>
<description/>
</proxy>
样品申请。
{
"source":"/home/vive/Desktop/file",
"recursiveSearch":"true",
"filePattern":".*\.xml"
}
[1] https://store.wso2.com/store/assets/esbconnector/details/48bab332-c6a6-4f5a-9b79-17e29c7ad4c6 [2] https://docs.wso2.com/display/ESB490/Managing+Connectors+in+Your+ESB+Instance [3] https://docs.wso2.com/display/ESB490/Custom+Proxy+Template [4] https://docs.wso2.com/display/ESBCONNECTORS/Working+with+the+File+Connector+Version+2#WorkingwiththeFileConnectorVersion2-search