Я посмотрел на это немного больше, и будет пытаться ответить на ваши вопросы:
- Где это каталог веб-приложение
DW приложения не являются (подразумеваются) веб-приложений. Они развертываются как встроенная система, в которой работает встроенный сервер причала, и прослушиваются на некоторых портах. Сказав это, есть определенные способы упаковки приложения в виде веб-приложения. (см. ссылку в комментарии)
- Можно ли редактировать статические файлы (JS, CSS) без необходимости перераспределения? - Да (ish)
Это зависит от вас, действительно. Есть вещь, называемая AssetBundle. Они могут использоваться для статических ресурсов сервера (обычно из пути к классам). Это, однако, механизм, который вы можете использовать для реализации собственного AssetBundle, который вместо того, чтобы обслуживать файлы с пути к классам, будет обслуживать файлы с обычного пути.
Или вы можете добавить свой обычный путь к пути к классам при запуске, чтобы работал AssetBundle.
Или вы можете реализовать ServletFilter для AssetBundle (активы не являются частью экосистемы трикотажа) и реализовать ваши динамические изменения в Фильтре.
Большинство из них потребует перезапуска по той или иной причине. Например, для пользовательской реализации фильтра очевидно требуется перераспределение. Сервлет, возвращающий активы, также (я считаю) использует стратегию кэширования, которая может потребовать перезагрузки (в зависимости от вашей реализации).
Для вашего пользовательского интерфейса: существует также проект DW-views, который добавляет возможность создавать представления (с помощью шаблонов усов по умолчанию), которые могут работать от вашего приложения и обслуживаться теми же конечными точками REST.
Надежда, что помогает,
После некоторых более проверок:
Вы можете служить статические ресурсы из файловой системы и изменить их, как вы идете. Они будут обслуживаться правильно. Как это сделать:
Добавить пакет активов с путем ресурсов:
bootstrap.addBundle(new AssetsBundle("/assets2/", "/assets"));
Это добавляет корневой путь к классам ресурса assets2
и имеет он служил статический от конечной точки assets
.
Фокус в том, что вы должны добавить свое местоположение файловой системы в качестве ресурса пути к классам. Это можно сделать с помощью аргументов (или вкладки classpath в конфигурации запуска eclipse).Вы можете сделать это относительно легко. Тем не менее, вы должны помнить, что путь к классам ресурсов ведут себя по-разному из файла системных ресурсов:
В моем случае я добавил к классам:
/home/artur/tmp/assets/
Однако мой Эссет пучок служит от «активов2». Давайте посмотрим на файловую систему:
[email protected]:~/tmp/assets$ pwd
/home/artur/tmp/assets
[email protected]:~/tmp/assets$ find .
.
./assets2
./assets2/test.txt
[email protected]:~/tmp/assets$
Итак, в моей файловой системе место было добавлено в качестве корня, а активы только служили с вложенной assets2
Теперь все ресурсы, которые расположены в активах2 могут быть изменены во время выполнения и будут обслуживаться DW в качестве статического ресурса.
Весело играя,
Артур
DW использует встроенный причал, который настроен через YAML конфигурации/коду. Он не развертывается как webapp (по умолчанию, хотя это тоже можно сделать), но как автономный файл jar. Он также предназначен для развертывания сервера REST, поэтому обычно у вас не обязательно есть файлы java-скриптов или файлы css (так как пользовательский интерфейс, скорее всего, будет закодирован где-то в другом месте) – pandaadb
спасибо pandaadb, но у меня есть приложение с 80% REST и небольшой интерфейс тоже! – pMan
Вы можете делать все, что вы делаете в своем web.xml, также программно. Так что в теории не будет ничего, что остановит вас, адаптируя ваше решение к этому. вы также можете посмотреть на это: https://github.com/rvs-fluid-it/wizard-in-a-box. – pandaadb