无法执行目标tomcat:deploy写入服务器时出错

时间:2014-08-07 13:08:58

标签: eclipse apache maven tomcat7

我正在尝试测试一个spring-mvc教程here

我想使用eclipse-maven在tomcat 7上部署生成的war。

在tomcat上手动部署时,战争正常。

要遵循的步骤:

  • 在eclipse上导入项目
  • 将此插件添加到现有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>
    

  • 在eclipse中使用名称TomcatServer

  • 配置新的tomcat服务器

修改tomcat-users.xml文件: 包括管理员用户:

<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>
  • 将服务器配置添加到.m2下的setting.xml配置文件中 用户文件夹:

        TomcatServer     管理     密码

  • Strat tomcat服务器

当我执行以下目标时:

Maven generate-sources:生成war文件

然后运行配置 - &gt;目标:

Tomcat的:部署

错误是:

[

  

错误]无法执行目标   org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy(default-cli)on   project springexample:无法调用Tomcat管理器:写入错误   服务器 - &gt; [帮助1]   org.apache.maven.lifecycle.LifecycleExecutionException:失败   执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy   项目springexample上的(default-cli):无法调用Tomcat管理器     在   org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)     在   org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)     在   org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)     在   org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)     在   org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)     在   org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)     在   org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)     在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)at at   org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)at   org.apache.maven.cli.MavenCli.execute(mavenCli.java:537)at at   org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)at at   org.apache.maven.cli.MavenCli.main(MavenCli.java:141)at at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)     在   org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)     在   org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)     在   org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)   引起:org.apache.maven.plugin.MojoExecutionException:不能   调用Tomcat经理   org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149)     在   org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70)     在   org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)     在   org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)     ... 19更多引起:java.io.IOException:写入服务器时出错     在sun.net.www.protocol.http.HttpURLConnection.writeRequests(未知   来源)at   sun.net.www.protocol.http.HttpURLConnection.writeRequests(未知   来源)at   sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知   来源)at   org.codehaus.mojo.tomcat.TomcatManager.invoke(TomcatManager.java:604)     在   org.codehaus.mojo.tomcat.TomcatManager.deployImpl(TomcatManager.java:662)     在   org.codehaus.mojo.tomcat.TomcatManager.deploy(TomcatManager.java:295)     在   org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85)     在   org.codehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85)     在   org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)     ... 22更多[错误] [错误] [错误]有关的更多信息   错误和可能的解决方案,请阅读以下文章:   [错误] [帮助1]   http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

3 个答案:

答案 0 :(得分:5)

就我而言,使用tomcat7命令进行部署工作:

tomcat7:deploy

你不应该使用:

tomcat:deploy

答案 1 :(得分:3)

我的问题与WAR文件超过50mb的事实有关。您需要在tomcat管理器中设置web.xml中的配置。

该文件通常位于%tomcat安装%\ 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>

答案 2 :(得分:2)

你应该把注意力集中在

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)

查看TomcatManager(http://mojo.codehaus.org/tomcat-maven-plugin/xref/org/codehaus/mojo/tomcat/TomcatManager.html#672

的来源

maven插件无法从服务器读取。它连接第597行,它写入数据,第601行,但在读取响应时失败,第604行

我会首先尝试在服务器上部署(以解决网络问题)并查看问题是否仍然存在。