wso2 esb下载/获取本地文件

时间:2013-07-31 12:20:09

标签: file download wso2 esb file-processing

我想要通过ESB共享一些静态文件(一些是HTML,一些是图像,一些是纯数据文件,如.csv或.xls等)。如果我运行一个单独的HTTP服务器来通过ESB接收这些请求,我可以实现这一点。相反,我喜欢在ESB中处理它。根据传入的请求URL(比如HTTP GET请求 - http://myesb.com:8280/getstatus.html),我喜欢从本地服务器的文件夹中提取这些静态文件。

我尝试了VFS方法,它看起来像内置了“刷新”机制,我不想要。我想只在客户请求时才“获取”这些数据。

简而言之,我喜欢像这样做一个简单的映射:

http://myesb.com:8280/getstatus.html将获取/var/myapp/status/appstatus.html文件的内容。

更新 我做了以下顺序 - 不知道如何使它工作:(

<sequence xmlns="http://ws.apache.org/ns/synapse" name="app1status">
   <in>
      <log level="custom">
         <property name="Reached app1status page - in" value="app1 Status"/>
         <property name="transport.vfs.ContentType" value="text/html"/>
         <property xmlns:ns="http://org.apache.synapse/xsd" name="TRPURL:" expression="get-property('From')"/>
      </log>
      <property name="transport.vfs.FileURI" value="vfs:file:///opt/platform/traffic/app1status1.html" scope="transport" type="STRING"/>
      <property name="HTTP_METHOD" value="GET"/>
      <property name="ClientApiNonBlocking" action="remove" scope="axis2"/>
      <header name="To" action="remove"/>
      <property name="RESPONSE" value="true" scope="default" type="STRING"/>
   </in>
   <out>
      <log level="custom">
         <property name="::::::Out:::::Reached app1status" value=" From OUT"/>
         <property name="messageType" value="text/html"/>
         <property name="ContentType" value="text/html"/>
      </log>
      <send/>
   </out>
</sequence>

请注意<in>介体中的以下内容:

<property name="transport.vfs.FileURI" value="vfs:file:///opt/platform/traffic/app1status1.html" scope="transport" type="STRING"/>

我的目的是获取文件appstatus1.html的内容并将其作为响应发回。但是我无法获取检索到的内容并将其添加到“RESPONSE”

让我知道如何做到。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

定义RESTAPI并根据GET / PUT将数据提取或发布到您的服务器。