У меня есть следующая проблема: я хочу использовать профили maven и плагин maven-war для фильтрации моего веб-приложения, так что это всего лишь один клик, чтобы развернуть его либо в режиме реального времени, или на сервере разработки.Eclipse развертывание нефильтрованного .WAR-Archive на Tomcat
Когда я создаю .WAR-архив через Eclipse (Maven-Plugin), а затем вручную развертываю его на tomcat-сервере через интерфейс tomcat-manager, мое приложение работает так, как ожидалось. (Все переменные правильно заменены внутри сгенерированной .WAR-архив)
Но когда я хочу запустить приложение с помощью в Eclipse «Запуск на сервере», происходит исключение:
[..] Вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр класса bean [org.springframework.security.web.authentication.logout.LogoutFilter]: конструктор сделал исключение; Вложенное исключение составляет java.lang.IllegalArgumentException: $ {security.casEntryPoint.logoutSuccessUrl} не является допустимым Перенаправление URL
Это конфигурация профилей Maven в моем pom.xml:
<profiles>
<profile>
<id>prod</id>
<build>
<filters>
<filter>src/main/filters/dfnaaiAgreement-prod.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>devLocal</id>
<build>
<filters>
<filter>src/main/filters/dfnaaiAgreement-devLocal.properties</filter>
</filters>
</build>
</profile>
Это пример записи для * .properties файла:
security.casEntryPoint.logoutSuccessUrl = https://example_entry/please_logmeout
Это одна запись в себе ttings.xml, который должен быть заменен значением в * .properties файле:
<security:logout logout-url="/logout" logout-success-url="${security.casEntryPoint.logoutSuccessUrl}" />
и это конфигурация для Maven плагин (в pom.xml), который используется для фильтрации файлов конфигурации:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<warName>dfnaaiAgreement</warName>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</webResources>
</configuration>
Это моя конфигурация Maven сборки:
Maven-Build configuration (Sorry, not enough reputation to post images directly)
Кажется, что «запуск на сервере» eclipse развертывает нефильтрованное приложение на tomcat-сервере. Что я делаю неправильно?
Update: Я последовал за ссылку Run Maven webapp on server from Eclipse with properties injection from profile, но i'am продолжает получать то же исключение.
Вот настройка конфигурации моего проекта: Active Maven Profiles
Update: Затмение (Luna) развертывает WebApplication в рабочую область/.metadata/.plugins/.org.eclipse.wst.server.core/tmp0/wtpwebapps/ApplicationName. Устанавливаемый там settings.xml по-прежнему содержит нефильтрованные переменные, тогда как сгенерированный .WAR-архив (который находится в рабочей области/applicationName/target) имеет правильно отфильтрованные settings.xml. Как это возможно?
Благодарим за помощь!
http://stackoverflow.com/questions/23220630/run-maven-webapp-on-server-from-eclipse-with-properties-injection- from-profile? rq = 1 – aniugne
О, извините, я не нашел эту тему. Спасибо, что решает мою проблему! – simho
К сожалению, я был неправ. Он все еще не работает. – simho