Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed to execute goal tomcat:deploy Error writing to server

I'm trying to test a spring-mvc tutorial here.

I would like to deploy the generated war on tomcat 7 using eclipse-maven.

The war works fine when deployed manually on tomcat.

Steps to follow :

  • import project on eclipse
  • add this plugin to the existing POM:

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

  • configure a new tomcat server in eclipse with the name TomcatServer

modify the tomcat-users.xml file: include an admin user:

<tomcat-users>
    <role rolename="admin"/>
    <role rolename="standard"/>
    <role rolename="manager-gui"/>
    <role rolename="manager"/>
    <role rolename="tomcat"/>
    <role rolename="manager-script"/>
    <user password="password" roles="standard,manager,admin,manager-gui,manager-script,tomcat" username="admin"/>
</tomcat-users>
  • Add the server configuration to the setting.xml config file under .m2 user folder:

    TomcatServer admin password

  • Strat tomcat server

When I execute the following goals :

Maven generate-sources : to generate the war file

then Run configuration --> with the goal :

tomcat:deploy

the error is :

[

ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project springexample: Cannot invoke Tomcat manager: Error writing to server -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project springexample: 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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.io.IOException: Error writing to server at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604) 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) ... 22 more [ERROR] [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

like image 836
med_alpa Avatar asked Aug 07 '14 13:08

med_alpa


3 Answers

You should focus your effors on

Caused by: java.io.IOException: Error writing to server 
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
at org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604)

Look at the source for TomcatManager (http://mojo.codehaus.org/tomcat-maven-plugin/xref/org/codehaus/mojo/tomcat/TomcatManager.html#672)

The maven plugin cannot read from the server. It connects, line 597, it writes the data, line 601, but fails when it reads the response, line 604

I would try to deploy at the server first (to get rid of network problems) and see if the problem persists.

like image 144
Tony BenBrahim Avatar answered Nov 20 '22 19:11

Tony BenBrahim


In my case, using the tomcat7 command for deployment worked :

tomcat7:deploy

And you should not use :

tomcat:deploy
like image 22
Etienne Tonnelier Avatar answered Nov 20 '22 17:11

Etienne Tonnelier


My issue was related to the fact the WAR file was over 50mb. You need to set the config in web.xml from the tomcat manager.

The file will normally be in %tomcat installation%\webapps\manager\WEB-INF\web.xml

<multipart-config>
  <!-- 50MB max -->
  <max-file-size>52428800</max-file-size>
  <max-request-size>52428800</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>
like image 27
DD. Avatar answered Nov 20 '22 19:11

DD.