TechFind
TechFind

Reputation: 3696

maven tomcat7 deploy

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

tomcat-maven-plugin 403 error

Upvotes: 1

Views: 10025

Answers (5)

Swarit Agarwal
Swarit Agarwal

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

Richard Vodden
Richard Vodden

Reputation: 379

For tomcat 7 you're using the wrong goals. Try tomcat7:deploy and tomcat7:undeploy instead.

Upvotes: 0

Tito
Tito

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

maziar
maziar

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

palacsint
palacsint

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

Related Questions