我有一些我想通过 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 的内容并作为响应发回。但我无法检索到内容并将其添加到“响应”中
让我知道怎么做。
谢谢你的时间。