0

我有一些我想通过 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 的内容并作为响应发回。但我无法检索到内容并将其添加到“响应”中

让我知道怎么做。

谢谢你的时间。

4

1 回答 1

0

定义一个RESTAPI并基于 GET/PUT 拉取或发布数据到您的服务器。

于 2013-07-31T12:56:25.730 回答