我正在尝试测试一个spring-mvc教程here。
我想使用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>
在eclipse中使用名称TomcatServer
修改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
答案 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行
我会首先尝试在服务器上部署(以解决网络问题)并查看问题是否仍然存在。