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

med*_*lpa 10 eclipse apache maven tomcat7

我想在这里测试一个spring-mvc教程.

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

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

要遵循的步骤:

  • 在日食上导入项目
  • 将此插件添加到现有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>
    
    Run Code Online (Sandbox Code Playgroud)

  • 在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>
Run Code Online (Sandbox Code Playgroud)
  • 将服务器配置添加到.m2用户文件夹下的setting.xml配置文件中:

    TomcatServer管理员密码

  • Strat tomcat服务器

当我执行以下目标时:

Maven generate-sources:生成war文件

然后运行配置 - >目标:

tomcat的:部署

错误是:

[

错误]无法执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:在项目springexample上重新部署(default-cli):无法调用Tomcat管理器:写入服务器时出错 - > [帮助1] org.apache.maven .lifecycle.LifecycleExecutionException:未能执行目标org.codehaus.mojo:Tomcat的Maven的插件:1.1:重新部署(默认CLI)项目springexample:不能org.apache.maven.lifecycle.internal.MojoExecutor调用Tomcat管理.执行(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.Lifecycle Starter.execute(LifecycleStarter.java:161)在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)在org.apache.maven .cli.MavenCli.execute(MavenCli.java:537)在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)在org.apache.maven.cli.MavenCli.main(MavenCli.java:141 )在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明)在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明)在java.lang.reflect.Method.invoke(来源不明)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:不能调用至 在org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:149)在org.codehaus.mojo.tomcat.AbstractWarCatalinaMojo.execute(AbstractWarCatalinaMojo.java:70)在org.apache.maven.plugin.DefaultBuildPluginManager MCAT经理产生java.io.IOException:.executeMojo(DefaultBuildPluginManager.java:101)在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)...... 19多由错误造成在太阳写入服务器.net.www.protocol.http.HttpURLConnection.writeRequests(未知来源)在sun.net.www.protocol.http.HttpURLConnection.writeRequests(未知来源)在sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知源)在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.c的org.codehaus.mojo.tomcat.AbstractDeployWarMojo.deployWar(AbstractDeployWarMojo.java:85)odehaus.mojo.tomcat.AbstractDeployMojo.invokeManager(AbstractDeployMojo.java:85)在org.codehaus.mojo.tomcat.AbstractCatalinaMojo.execute(AbstractCatalinaMojo.java:141)... 22更[错误] [ERROR] [ERROR]对于有关错误和可能的解决方案的更多信息,请阅读以下文章:[错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Eti*_*ier 5

在我的例子中,使用tomcat7命令进行部署工作:

tomcat7:deploy
Run Code Online (Sandbox Code Playgroud)

你不应该使用:

tomcat:deploy
Run Code Online (Sandbox Code Playgroud)


Ton*_*him 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)
Run Code Online (Sandbox Code Playgroud)

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

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

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