2016-12-02 6 views
1

У меня есть html-файл под src/main/resources в проекте mule. Как указать относительный путь для html-файла относительно моего каталога проекта в поле пути базы данных для обработчика статических ресурсов HTTP для рендеринга html-файла. Я дал ${app.home}/src/main/resources в ресурсной базе, но ${app.home} указывает на каталог, как показано нижеhttp static handler resource base path

/Users/хх/GIT/проектов/.mule/приложений/интеграция/SRC/основные/ресурсы/

Я не уверен, почему он ищет каталог .mule/apps.

Мой html-файл находится под этим путем.

/Users/xx/git/projects/integration/src/main/resources/app.html

ответ

2

Ваш $ {app.home} указывает на правильное место. Не забывайте, что вы запускаете приложение, которое архивируется (заархивировано), развертывается и запускается на сервере приложений, который не является вашей средой в Anypoint Studio.

Итак, когда он бежит, он бежит в другом месте. У вас должны быть все необходимые файлы в этом новом месте. Сделать это проще - используйте ресурсы, а не файлы. Пусть сервер приложений переносит файлы.

Вот простой пример, который показывает любой статический файл (как ресурса) из каталога общественного enter image description here

Вот код

<flow name="publicFilesHttpsFlow"> 
     <http:listener config-ref="HTTPS_listner" path="/StatusESB/public/*" doc:name="HTTP"/> 
     <set-variable variableName="resourceName" value="#[message.inboundProperties['http.request.uri'].substring(18)]" doc:name="Variable"/> 

     <set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream(flowVars.resourceName)]" doc:name="Set Payload"/> 
     </flow> 

В этом примере любой файл в директории SRC/основные/ресурсы/public, который является ресурсом и делится через приложение на сервер приложений, будет отображаться как страница html. Как

https://localhost/StatusESB/public/HelloWorld.html

+0

это достижимо с помощью HTTP статический обработчик? – user94538

+0

Я не знаю, что вы подразумеваете под «HTTP static handler». Предполагая, что вы имеете в виду писать индивидуальный HTTP-прослушиватель для каждого отдельного файла, например отдельных слушателей, для запросов, таких как /HelloWorld.html, /HelloWorld1.html, /HelloWorld2.html - да, это можно сделать. Это было бы большой причиной для найма армии разработчиков;) – Alex

+0

Что я имел в виду, было что-то вроде этого user94538

 Смежные вопросы

  • Нет связанных вопросов^_^