I have been trying to create a simple maven web based project to be confident about maven. I have added tomcat7 plugin in my pom.xml to use it as a server. But when i started to
I got this working too thanks to points in this post.. Things I got stuck on were: The POM file - you need a slash on the beginning of the path (or it tried to install it under /manager/ and fails):
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://10.54.17.35:8080/manager/text</url>
<server>LoginForTomcat</server>
<path>/displayService</path>
</configuration>
</plugin>
provide server credentials in ~/.m2/settings.xml:
<servers>
<server>
<id>LoginForTomcat</id>
<username>figgy</username>
<password>passw0rd</password>
</server>
</servers>
On the tomcat server, you need to define manager-script and manager-jmx:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<user username="figgy" password="passw0rd" roles="manager-gui,manager-script,manager-jmx"/>
Looking over this everything here is in the posts above, posting this to clarify things.
I ran into the same issue. You'll need to add an extra role to the mix: manager-jmx. So your tomcat-users.xml file should have.
<user username="tomcat" password="tomcat" roles="manager-script, manager-jmx"/>
The url in configuration of maven plugin should be <url>http://127.0.0.1:8080/manager/text</url>
which corresponds to the role manager-script
.
Also, it is worth noted that after changing the roles
in {TOMCAT_HOME}/conf/tomcat-users.xml
, you have to restart the tomcat server for reloading the configuration. I know this is a common sense, but my experience told me that some of you may really stuck at here.
This error message
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.0:deploy (default-cli) on project MavenWeb: Cannot invoke Tomcat manager: Connection to http://127.0.0.1:8080 refused: Connection refused -> [Help 1]
insinuates this is authentication related. Try and change this
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
to
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-script"/>
Access from the maven plugin will not happen over the browser based admin client :)