maven tomcat7部署

时间:2011-09-22 15:57:51

标签: eclipse tomcat maven

的pom.xml:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
        <url>http://localhost:8080/manager/html</url>
        <server>myserver</server>
        <path>/test</path>
        <warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
    </configuration>
</plugin>

使用Eclipse: Eclipse indigo 3.7带 m2e插件

改性 Tomcat7 / CONF /的 Tomcat的users.xml中

 <role rolename="admin"/>
  <role rolename="manager"/>
  <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>

context.xml中 Tomcat7 / conf / context.xml,将<context>更改为

<Context antiJARLocking="true" antiResourceLocking="true">

apache-maven \ conf \ settings.xml

在服务器标记下添加以下条目:

  <servers>
    <server>
    <id>myserver</id>
    <username>admin</username>
    <password>admin</password>
    </server>

启动tomcat服务器

目标运行: tomcat:deploy tomcat:取消部署

收到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project test: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Ftest&war=&update=true -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[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

项目名称:测试

war文件名: test-1.0-SNAPSHOT.war

发现了类似的问题,但没有多大用处:Tomcat-maven-plugin 401 error

tomcat-maven-plugin 403 error

5 个答案:

答案 0 :(得分:6)

虽然答案很晚,但有人可能觉得这很有用。 如果你使用的是maven3和tomcat7.下面的方法对我有用。我不知道tomcat7中应用程序管理器端点的变化。

Environment - Apache Maven 3.0.4,apache-tomcat-7.0.34,Windows 7

Tomcat7已将其部署终点从http://tomcatserver:8080/manager/html更改为http://tomcatserver:8080/manager/text

所以我的pom.xml将是

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
     <configuration>
           <url>http://tomcatserver:8080/manager/text</url>
           <server>tomcat</server>
          <path>/myWebApp</path>
         </configuration>
  </plugin>

在tomcat-users.xml中

<role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>

  <user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

在maven settings.xml中

<server>
  <id>tomcat</id>
  <username>root</username>
  <password>root</password>
</server>

在context.xml中,虽然这是可选的,并且与maven3部署到tomcat7无关,但有时可能会发生jar锁定,因此要更安全。

<Context  antiJARLocking="true" antiResourceLocking="true">

现在发出

mvn tomcat:deploy

请记住在maven部署之前启动tomcat。

如果部署成功,您的应用程序将在

处提供
http://tomcatserver:8080/myWebApp

答案 1 :(得分:3)

manager-gui添加到角色:

<user username="admin" password="admin" roles="admin,manager,manager-gui" />

重新启动Tomcat。

确保您的XML配置文件正在使用中。一种简单的方法是在其中编写一个未关闭的标记并检查错误消息。如果您没有收到任何错误消息,则表明您使用的是未使用的XML。

答案 2 :(得分:1)

在tomcat 7中

你应该设置

<user username="admin" password="admin" roles="manager-script,manager-gui" />  

使用maven插件进行部署

答案 3 :(得分:0)

对于tomcat 7,你使用了错误的目标。尝试使用tomcat7:deploy和tomcat7:取消部署。

答案 4 :(得分:0)

在所提及的网站上找到快速解决方案......

http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html

在Eclipse和Sprint测试套件中按预期工作

注意: - 我使用了干净的 tomcat:deploy ,非常适合我。