У меня есть некоторые статические файлы (некоторые из них - HTML, некоторые - изображения, а некоторые - чистые файлы данных - например .csv или .xls и т. Д.), Которые я хочу разделить через ESB. Я могу сделать это, если я запустил отдельный HTTP-сервер, который получит запрос для них через ESB. Вместо этого мне нравится обрабатывать его в ESB. На основании URL-адреса входящего запроса (например, HTTP GET-запрос - http://myesb.com:8280/getstatus.html), мне нравится извлекать эти статические файлы из папок локального сервера.wso2 esb для загрузки/получения локального файла
Я пробовал метод VFS, и он выглядит как встроенный механизм «обновления», который я не хочу. Я хочу «Получить» эти данные только тогда, когда клиенты запрашивают его.
Короче говоря, я хотел бы иметь простое отображение сделано так:
http://myesb.com:8280/getstatus.html закачает содержимое /var/myapp/status/appstatus.html файла.
Update я сделал следующую последовательность - не знаю, как заставить его работать :(
<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»
Дайте мне знать, как это сделать.
Спасибо за ваше время.
Можете ли вы уточнить, как я могу указать локальный файл для отправки в api? Я пытаюсь сделать это: я хочу включить или отключить трафик для конкретного приложения, используя HTML-файл (обычный html-файл в локальной папке). Если ESB может найти и извлечь содержимое HTML-файла вызывающему абоненту (в этом случае внешнему балансировщику нагрузки), трафик будет продолжаться. Если ESB не найдет файл и не вернет HTTP 404, балансировщик нагрузки перестанет отправлять трафик для конкретного приложения. Я очень благодарен, если вы можете предоставить образец конфигурации для использования API для отправки статического файла. –
На данный момент я использую RESTAPI и закончил размещение HTML-страницы на другом веб-сервере, и все сработало. Я хотел, чтобы сервер ESB сам обрабатывал HTML-запрос (стал базовым веб-сервером), но еще не понял, что еще один :(- –