1

我正在使用 maven、eclipse 和 tomcat7。我正在尝试使用clean tomcat:deploy命令在 tomcat 中部署我的 Web 应用程序,但每次我收到此错误:

[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project azraspina: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fazraspina&war= -> [Help 1]

这是我的 pom.xml 的插件部分:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <configuration>
            <username>admin</username>
            <password>admin</password>
            <server>raspinaserver</server>
            <path>/azraspina</path>
            <url>http://localhost:8080/manager/html</url>
        </configuration>
    </plugin>

</plugins>

这是我的 tomcat-users.xml 的一部分:

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

到目前为止,我几乎尝试了网络上的所有内容!我已将 pom.xml 的凭据部分添加到 maven 的 setting.xml 中,但它没有解决问题。我也尝试使用“tomcat7-maven-plugin”但仍然没有运气。我什至试着把头撞到水泥墙上(尽可能用力),但我还活着,所以那里也没有运气。那么,你能帮我解决这个问题吗?谢谢你

4

2 回答 2

2

如果您要部署到 Tomcat 7,您可能会考虑使用Apache 的 Tomcat 7 Maven 插件,而不是 Codehaus 版本。

通常,凭据不会进入 POM 中的插件配置,因为 POM 最终位于工件存储库中,并且通常与其他开发人员共享。凭证进入 settings.xml<servers>元素,然后配置插件以引用该服务器。这就是Tomcat 7 插件使用文档Codehaus Tomcat 插件所描述的内容。

所以,你的 settings.xml:

....
<servers>
  <server>
      <id>raspinaserver</id>
      <username>admin</username>
      <password>admin</password>
  </server>
</servers>
...

和插件配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>tomcat-maven-plugin</artifactId>
    <configuration>
      <server>raspinaserver</server>
      <path>/azraspina</path>
      <url>http://localhost:8080/manager/html</url>
    </configuration>
</plugin>
于 2013-10-14T15:37:27.907 回答
0

我认为问题可能出在manager URL中。在你的pom.xml上试试这个:

<url>http://localhost:8080/manager/html</url>

代替 :

<url>http://localhost:8080/manager</url>

我找不到有关这些 URL 的文档(肯定存在),但无论如何,我可以使用tomcat-maven-plugin v1.1部署到apache-tomcat-6.0.39

这是您的 pom.xml 中的第二个可能问题:您尚未指定要使用的插件版本。它可以工作......但它容易出错。Maven 甚至对这些事情发出警告。我在我的 pom.xml 上使用它:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>tomcat-maven-plugin</artifactId>
  <version>1.1</version>
  <configuration>
    <url>http://localhost:8080/manager</url>
    <server>MyTomcat</server>
    <path>/agalindo-webui</path>
  </configuration>
</plugin>

在那里,我在我的 settings.xml ( ~/.m2/settings.xml ) 上指定了像user944849这样的服务器,如下所示:

<settings>
  <servers>
    <server>
      <id>MyTomcat</id>
      <username>myusername</username>
      <password>mypassword</password>
    </server>
  </servers>
  <!-- .. -->
</settings>

希望能帮助到你,

/ 天使

于 2014-02-15T08:23:27.400 回答