14

I have a problem when I'm trying to deploy Java-application.

Cannot invoke Tomcat manager: Connection reset by peer: socket write error

or

Cannot invoke Tomcat manager: Software caused connection abort: socket write error

In pom.xml I have this:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <url>http://localhost:8085/manager/html</url>
        <server>tomcat7</server>
        <path>/java_web</path>
        <username>admin</username>
        <password>admin</password>
    </configuration>
</plugin>

In tomcat-users.xml I have this:

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

Also in Maven/conf/settings.xml I have:

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

When I'm trying to go to

http://localhost:8085/manager/html/deploy?path=%2Fjava_web&update=true

and input username and password (admin admin) I have error:

403 Access Denied
You are not authorized to view this page.

But I typed in tomcat-users.xml that user admin has manager-gui role. I'm using Tomcat 7.0.56 and Jenkins. Also use commands: clean and tomcat7-redeploy. Need help to understand what is wrong:C

bin-bin
  • 532
  • 2
  • 6
  • 16

6 Answers6

14

In my case settings looked ok, but I already had the same webapp uploaded to tomcat and hadn't specified

<update>true</update>

in tomcat plugin in pom.xml

A. L.
  • 712
  • 1
  • 10
  • 16
  • see also answer by Melody Feng. – Zefiro Nov 29 '18 at 22:33
  • Downvote. This is a compilation error. cvc-complex-type.2.4.a: Invalid content was found starting with element 'update'. One of '{"http://maven.apache.org/POM/4.0.0":extensions, "http://maven.apache.org/POM/4.0.0":executions, "http:// maven.apache.org/POM/4.0.0":dependencies, "http://maven.apache.org/POM/4.0.0":goals, "http://maven.apache.org/POM/4.0.0":inherited}' is expected. – Philip Rego Jun 02 '19 at 20:46
  • @PhilipRego probably it should be specified in section, thats why you are getting this error. Can't check and tell for sure right now. – A. L. Oct 03 '19 at 09:40
6

I added

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

in user/.m2/settings.xml

Also I didn't change pom.xml, tomcat-users.xml and Maven/conf/settings.xml and now all works fine.

bin-bin
  • 532
  • 2
  • 6
  • 16
  • I think your problem was the server config in your tomcat maven configuration. It conflicted with the username/password settings. In the pom.xml file you should either remove the tomcat7 part, and keep the username and password, or remove the username and password and keep tomcat7. – Sinisha Mihajlovski Nov 12 '14 at 13:15
  • location of setings.xml may differ, e.g. could also be: D:\apache-maven-3.3.9\conf\settings.xml – Hartmut Pfarr Feb 20 '16 at 19:22
  • thank you, this is perfect! the server id of maven's settings.xml is corresponding to the server id in pom.xml's tomcat7-maven-plugin server id, or other way round :-) so you can define many servers and keep credentials in one place but refer from many pom.xml's to this. – Hartmut Pfarr Feb 20 '16 at 19:24
5
        <plugin>
            <!-- tomcat deploy plugin -->
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <url>http://localhost:8080/manager/text</url>
                <server>TomcatServer</server>
                <username>XXXX</username>
                <password>XXXX</password>
                <path>/XXXX</path>
            </configuration>
        </plugin>

This works for me :)

Environment -> Windowd 8.1 + Maven 3 + Tomcat 8.1.15 + JDK 1.8 Also, I had to use tomcat:redeploy

ALso, update your maven settings via -> Preferences->Maven->User Settings to point to your maven settings.xml file. Add the values of the server in the maven settings.xml ( servers section and add the tomcat server details there). Use that here( for me the id is TomcatServer )

Some of the steps were taken from here:- http://kosalads.blogspot.de/2014/03/maven-deploy-war-in-tomcat-7.html

jbdundas
  • 139
  • 1
  • 9
2

Users with the manager-gui role should not be granted either the manager-script or manager-jmx roles.

so,user admin should remove the role "manager-gui"

tiger
  • 33
  • 2
  • This was the cause of my "connection being reset" probelm. The admin user was assigned the incorrect role of manager-gui. I added a new manager-script role and a new user and my problem was solved. – Tšeliso Molukanele Dec 04 '14 at 13:55
  • Why not? Why shouldn't they have both manager-gui and manager-script? – dwjohnston Jun 27 '16 at 00:36
2
mvn tomcat7:redeploy

try this as documentation suggests:

(Alias for the deploy goal with its update parameter set to true.)

R. Zagórski
  • 20,020
  • 5
  • 65
  • 90
1

If you have tried again and again to set the users in the tomcat-users.xml file and the error still persists, please consider also checking the permissions of the Tomcat installation and the user that is running the service.

I was experiencing the same errors ("Connection reset by peer: socket write error") until I realized that I had first started the Tomcat server with an administrator / root user and then I was trying to get that server up using another user without administrative privileges. It turns out that in these cases Tomcat is able to start but, logically, it is unable to write to the "webapps" directory to deploy remotely, getting errors similar to those that occur when users have not been configured correctly (same symptoms but different problem).

I had this problem with a Windows Server but I imagine something similar could happen with Linux and MacOS. I leave it here "for posterity" in case it might be of use to anyone else.

henry2man
  • 176
  • 2
  • 4