3

I had a I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error problem When using maven plugin to deploy tomcat This problem has haunted me for days. I couldn't use tomcat7:deploy to upload my war file via maven plugin, due to connection reset by peers error. Here's part of my pom.xml

<build>
        <finalName>Project</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
             <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                 <version>2.2</version>
                <configuration>
                    <server>tomcat</server>
                    <url>http://myserver/manager/text</url>
                    <username>admin</username>
                    <password>admin</password>
                    <path>/plainart</path>
                </configuration>
            </plugin>
        </plugins>

    </pluginManagement>

and here's the console log

[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for cn.edu.xmu.plainart:cn.edu.xmu.plainart:war:0.0.1-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: cglib:cglib:jar -> version ${cglib.version} vs 2.2.2 @ line 89, column 15
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building cn.edu.xmu.plainart 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> tomcat7-maven-plugin:2.2:deploy (default-cli) > package @ cn.edu.xmu.plainart >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ cn.edu.xmu.plainart ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ cn.edu.xmu.plainart ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ cn.edu.xmu.plainart ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ cn.edu.xmu.plainart ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ cn.edu.xmu.plainart ---
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ cn.edu.xmu.plainart ---
[INFO] Packaging webapp
[INFO] Assembling webapp [cn.edu.xmu.plainart] in [C:\Users\Luna\Documents\GitHub\PiedPiper\Project\target\Project]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Users\Luna\Documents\GitHub\PiedPiper\Project\src\main\webapp]
[INFO] Webapp assembled in [3376 msecs]
[INFO] Building war: C:\Users\Luna\Documents\GitHub\PiedPiper\Project\target\Project.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO] 
[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ cn.edu.xmu.plainart <<<
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ cn.edu.xmu.plainart ---
[INFO] Deploying war to http://104.236.166.121:8080/plainart  
Uploading: http://104.236.166.121:8080/manager/text/deploy?path=%2Fplainart

[INFO] I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error
[INFO] Retrying request
Uploading: http://104.236.166.121:8080/manager/text/deploy?path=%2Fplainart

[INFO] I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error
[INFO] Retrying request
Uploading: http://104.236.166.121:8080/manager/text/deploy?path=%2Fplainart

[INFO] I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error
[INFO] Retrying request
Uploading: http://104.236.166.121:8080/manager/text/deploy?path=%2Fplainart

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40.818 s
[INFO] Finished at: 2015-12-23T10:51:22+08:00
[INFO] Final Memory: 19M/160M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project cn.edu.xmu.plainart: Cannot invoke Tomcat manager: Connection reset by peer: socket write error -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project cn.edu.xmu.plainart: Cannot invoke Tomcat manager
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
    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:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
    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:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot invoke Tomcat manager
    at org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)
    at org.apache.tomcat.maven.plugin.tomcat7.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:68)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 20 more
Caused by: java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
    at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:181)
    at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115)
    at org.apache.tomcat.maven.common.deployer.TomcatManager$RequestEntityImplementation.writeTo(TomcatManager.java:880)
    at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:89)
    at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108)
    at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117)
    at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:265)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestEntity(ManagedClientConnectionImpl.java:203)
    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:236)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:682)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.tomcat.maven.common.deployer.TomcatManager.invoke(TomcatManager.java:742)
    at org.apache.tomcat.maven.common.deployer.TomcatManager.deployImpl(TomcatManager.java:705)
    at org.apache.tomcat.maven.common.deployer.TomcatManager.deploy(TomcatManager.java:388)
    at org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85)
    at org.apache.tomcat.maven.plugin.tomcat7.deploy.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:82)
    at org.apache.tomcat.maven.plugin.tomcat7.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:132)
    ... 23 more
[ERROR] 
[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

and the remote tomcat-user.xml is configured.

I don't know how to fix this problem. If there's any infomation useful to troubleshooting that I could offer, please let me know.

Thanks in advance

Gnostikoi
  • 117
  • 2
  • 3
  • 12

2 Answers2

3

Try these ,

  1. use redeploy instead of deploy

  2. Default war size in tomcat is 50 MB, try to increase that if your war is bigger than 50 MB

  3. Lots of users listed cause to me missing roles in tomcat-users.xml. Try adding manager-script role if missing , Question Link

  4. Tomcat7 plugin might be picking server details from the maven conf settings.xml instead of .m2\settings.xml .Adding server information in that file might resolve issue.

Community
  • 1
  • 1
Sabir Khan
  • 9,826
  • 7
  • 45
  • 98
  • Thanks for your patience! I checked all of your listing items. The first 3 is okay. But where is maven conf settings.xml as you mentioned? I add server details to ``.m2/settings.xml`` previously and that might be the main cause. – Gnostikoi Dec 23 '15 at 07:16
  • At `$M2_HOME/conf/settings.xml` i.e. inside your maven installation directory. – Sabir Khan Dec 23 '15 at 07:18
  • it gets better. but stuck at ``2114/16215 KB `` due to the same problem. My war file is about 16M and is certainly within the limit size. I think there's some other factor that controls the limit. During my previous try it stuck at '66/16215KB'. – Gnostikoi Dec 23 '15 at 08:09
  • by the way, I install maven by eclipse, so I don't have a M2_HOME environment variable. Do I need to try installing maven manually? – Gnostikoi Dec 23 '15 at 08:29
  • If nothing else is working, you can try with external installation . You can always switch between embedded or external installation via Eclipse settings **Window -> Preferences -> Maven -> Installations** – Sabir Khan Dec 23 '15 at 08:48
  • I have tried every possible solution I could find, is there anything else that can be done? I am still getting the same error – Gilad Dahan Jul 21 '21 at 08:20
0

In addition to @Sabir Khan's answer. You need to check if the value of server in the plugin configuration is the same as the server id in the settings.xml

So in the pom.xml you are having :

<plugin>
     ...
     <configuration>
          ...
           <server>MyTomcatServer</server>
          ...
     </configuration>
     ...
</plugin>

be sure in the settings.xml of maven you have :

<servers>
    ...
    <server>
        <id>MyTomcatServer</id>
        <username>username_here</username>
        <password>password_here</password>
    </server>
    ...
</servers>

Otherwise, tomcat will try to use admin account (if it is not configured, the server will refuse the auth)