我遇到以下问题:我想使用maven配置文件和maven-war-plugin来过滤我的web应用程序,这样只需单击一下即可在实时或开发服务器上部署它
当我通过Eclipse(Maven-Plugin)构建.WAR-archive,然后通过tomcat-manager-interface手动将其部署到tomcat-server上时,我的应用程序按预期工作。 (所有变量都在生成的.WAR-archive中正确替换)
但是,当我想使用 Eclipse" Run on Server" 运行应用程序时,会发生异常:
[..]嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.security.web.authentication.logout.LogoutFilter]:构造函数抛出异常;嵌套异常是java.lang.IllegalArgumentException:$ {security.casEntryPoint.logoutSuccessUrl}不是有效的重定向URL
这是我的pom.xml中maven配置文件的配置:
<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
这是settings.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&#34; s&#34;在服务器上运行&#34;在tomcat-server上部署未过滤的应用程序。 我做错了什么?
更新的 我按照此链接Run Maven webapp on server from Eclipse with properties injection from profile,但我仍然收到相同的例外。
以下是我项目配置的调整:Active Maven Profiles
更新: Eclipse(Luna)将webapplication部署到workspace / .metadata / .plugins / .org.eclipse.wst.server.core / tmp0 / wtpwebapps / applicationName。在那里部署的settings.xml仍包含未过滤的变量,而生成的.WAR-Archive(位于workspace / applicationName / target)具有正确过滤的settings.xml。这怎么可能?
感谢您的帮助!
答案 0 :(得分:0)
虽然这不是最佳解决方案,但我找到了解决问题的解决方法。因此,我按照目标文件夹的WEB-INF-Folder进行部署的方式调整了项目的部署程序集设置。
您可以通过右键单击项目并选择“属性”来执行此操作。以下是我如何调整设置的屏幕截图: