У меня есть XML-файл (urlrewrite.xml), для которого нужно разрешить заполнитель свойств. Для этого я включаю фильтрацию Maven. Это отлично работает для собранного файла WAR.
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
Проблема заключается в попытке запустить приложение в режиме разработки с использованием maven-jetty-plugin (Maven Jetty Plugin) в качестве maven jetty: run.
Рассматриваемый файл urlrewrite.xml находится в каталоге src / main / resources и, следовательно, должен (и делает) заканчиваться в / WEB-INF / classes (или target / classes для maven jetty: run) .
Конфигурация URLRewriteFilter определяет расположение файла конфигурации следующим образом:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confPath</param-name>
<param-value>/WEB-INF/classes/urlrewrite.xml</param-value>
</init-param>
</filter>
Это будет работать во время развертывания.Однако при использовании плагина jetty maven URLRewrite умрет с исключением NullPointerException, поскольку он использует context.getResourceAsString ("/ WEB-INF / classes / urlrewrite.xml") для загрузки файла конфигурации. Jetty возвращает null для этого, потому что при запуске приложения из рабочей области оно разрешает / WEB-INF / classes / ... в src / main / webapp / WEB-INF / .... Файл там не существует, потому что WAR еще не собран. Вместо этого он должен извлечь ресурс из target / classes / urlrewrite.xml.
Если вам это не понятно, то вы, вероятно, не сможете ответить на этот вопрос, потому что я подозреваю, что вам нужно быть гуру Jetty, чтобы найти обходной путь (подсказка: это проблема!).
Кто-нибудь знает способ обойти это? Я также пробовал следующие обходные пути, чтобы узнать о avail:
Таким образом, maven-jetty-plugin должен находиться в папке src / main / resources / webapp / , вставить путь и имя файла , чтобы он был доступен для maven jetty: команда запуска ...
Спасибо за помощь ...
С уважением, Ллойд Форс