15

i am trying to do mvn tomcat:deploy and i came across with the error

 [ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project appanalytix: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project appanalytix: Cannot invoke Tomcat manager at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149) at org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 more Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at java.net.Socket.connect(Socket.java:528) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:378) at sun.net.www.http.HttpClient.openServer(HttpClient.java:473) at sun.net.www.http.HttpClient.<init>(HttpClient.java:203) at sun.net.www.http.HttpClient.New(HttpClient.java:290) at sun.net.www.http.HttpClient.New(HttpClient.java:306) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:995) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:931) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:849) at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:597) at org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662) at org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295) at org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85) at org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85) at org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141) 

in maven\conf\settings.xml

<server> <id>TomcatServer</id> <username>admin</username> <password>admin</password> </server> 

in tomcat-7.0.39\conf\tomcat-users

 <tomcat-users> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="admin"/> <user username="admin" password="admin" roles="admin,manager,manager-gui"/> </tomcat-users> 

pom.xml

 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <mode>war</mode> <url>http://localhost:8080/manager</url> <server>TomcatServer</server> <path>/appanalytix</path> </configuration> </plugin> 

i have tried using /text and /html from but that doesn't worked ,please help me to solve this

5 Answers 5

24

The following way works for me.

  1. Please change your pom.xml to include

    <project> ... <build> <plugins> .... <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>my-tomcat</server> <path>/myapp</path> </configuration> </plugin> </plugins> ... </build> ... </project> 
  2. Make sure your Tomcat 7 server have the following lines on TOMCAT_HOME/conf/tomcat-users.xml:

    <!-- Role to manage WAR files via HTML /manager. The name should be as is! --> <role rolename="manager-gui"/> <!-- Role to manage WAR files via script like Maven. The name should be as is! --> <role rolename="manager-script"/> <!-- One user cannot have manager-gui and manager-script roles --> <user username="managerGui" password="managerPwd" roles="manager-gui"/> <user username="manager" password="managerPwd" roles="manager-script"/> 
  3. Configure your USER_HOME/.m2/settings.xml to include the password.

    <settings> ... <servers> ... <server> <id>my-tomcat</id> <username>manager</username> <password>managerPwd</password> </server> </servers> </settings> 
  4. Deploy using mvn tomcat7:redeploy

Read more on http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html

Sign up to request clarification or add additional context in comments.

3 Comments

Thank you for a comprehensive and deterministic answer (which should be the accepted answer).
@sancho21 running mvn tomcat7:redeploy on Mac OS X Yosemite gives an error with version 2.0 of the plugin. Version 2.2 works just fine with tomcat7:redeploy.
I have Tomcat 8 server and mvn tomcat7:redeploy still works!
3

First you must be aware of the move of the tomcat-maven-plugin to the apache software foundation Second you shouldn't put configuration stuff into maven/conf/settings.xml you should use the users settings.xml file HOME/.m2/settings.xml instead.

Apart from the above you should use the following URL for accessing Tomcat:

http://localhost:8080/manager/html 

2 Comments

I had a problem because I had not add /html at the end of http://localhost:8080/manager.
Did not work for me (same configuration). This is not a deterministic solution.
0

In my case solution worked. I did one petty mistake of not starting Apache Tomcat Server.

Apart from this, make user that you do appropriate entry in maven/conf/setting.xml within tag:-

<server> <id>TomcatServer</id> <username>admin</username> <password>password</password> </server> 

In Apache Tomcat 7 tomcat-users.xml, following line should be added within

<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="admin" password="password" roles="standard,manager,admin,manager-gui,manager-script,tomcat" /> 

In Pom.xml

 <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8888/manager/text</url> <server>TomcatServer</server> <path>$ReplaceWithWarFileName$</path> <update>true</update> <username>admin</username> <password>password</password> </configuration> </plugin> 

Comments

0
  1. A solution that worked for me was in the Run options :

    1_ Maven Install

    2_ Maven Build

Comments

-1

A solution which worked in my case is:

  1. Go to the module having Main class.
  2. Right click on pom.xml under this module.
  3. Select "Run Maven" -> "UpdateSnapshots"

Comments