Reputation: 3696
POM.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/html</url>
<server>myserver</server>
<path>/test</path>
<warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
</configuration>
</plugin>
Eclipse used: Eclipse indigo 3.7 with m2e plugin
modified Tomcat7/conf/tomcat-users.xml
<role rolename="admin"/>
<role rolename="manager"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
Context.xml
Tomcat7/conf/context.xml, change <context>
to
<Context antiJARLocking="true" antiResourceLocking="true">
under apache-maven\conf\settings.xml
add following entry under server tag:
<servers>
<server>
<id>myserver</id>
<username>admin</username>
<password>admin</password>
</server>
Start tomcat server.
target run: tomcat:deploy and tomcat:undeploy
getting following error:
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project test: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Ftest&war=&update=true -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
project name: test
war file name: test-1.0-SNAPSHOT.war
similar issue found but didnot get much use: Tomcat-maven-plugin 401 error
Upvotes: 1
Views: 10025
Reputation: 2648
Found Quick Solution on Mentioned Website...
http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html
Working as expected in Eclipse and Sprint Test Suite
Note :- I have used clean tomcat:deploy, worked perfectly for me.
Upvotes: 0
Reputation: 379
For tomcat 7 you're using the wrong goals. Try tomcat7:deploy and tomcat7:undeploy instead.
Upvotes: 0
Reputation: 9054
Though a late answer , someone might find this useful. If you are using maven3 and tomcat7.The below method worked for me.I was not aware of the change in application manager endpoint in tomcat7.
Environment - Apache Maven 3.0.4,apache-tomcat-7.0.34,Windows 7
Tomcat7 has changed its deployment end point from http://tomcatserver:8080/manager/html
to http://tomcatserver:8080/manager/text
.
So my pom.xml will be
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://tomcatserver:8080/manager/text</url>
<server>tomcat</server>
<path>/myWebApp</path>
</configuration>
</plugin>
In tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
In maven settings.xml
<server>
<id>tomcat</id>
<username>root</username>
<password>root</password>
</server>
In context.xml , though this is optional and is not related to maven3 deployment to tomcat7 ,sometimes jar locking might happen,so to be on the safer side.
<Context antiJARLocking="true" antiResourceLocking="true">
Now issue
mvn tomcat:deploy
Remember to start tomcat before maven deployment.
If deployment is success , your application will be available at
http://tomcatserver:8080/myWebApp
Upvotes: 6
Reputation: 601
in tomcat 7 you should set
<user username="admin" password="admin" roles="manager-script,manager-gui" />
to deploy using maven plugin
Upvotes: 1
Reputation: 28885
Add manager-gui
to the roles:
<user username="admin" password="admin" roles="admin,manager,manager-gui" />
And restart Tomcat.
Make sure that your XML configuration files are in use. A simple way to do this is writing an unclosed tag inside them and checking the error messages. If you don't get any error message you've written in an unused XML.
Upvotes: 3