1

我一直在尝试创建一个简单的基于 maven web 的项目来对 maven 充满信心。我在 pom.xml 中添加了 tomcat7 插件以将其用作服务器。但是当我开始通过使用将我的war文件部署到tomcat时

tomcat7:部署

它抛出如下错误,

[INFO] Deploying war to http://127.0.0.1:8080/MavenWeb  
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.585s
[INFO] Finished at: Wed Jan 30 16:03:06 IST 2013
[INFO] Final Memory: 9M/24M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.0:deploy  (default-cli) on project MavenWeb: Cannot invoke Tomcat manager: Connection to http://127.0.0.1:8080 refused: Connection refused -> [Help 1]

我在 pom.xml 中的插件部分如下。

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <configuration>
       <url>http://127.0.0.1:8080/manager/html</url>
       <warFile>/home/shebin/Maven Folder/MavenWeb/target/MavenWeb.war</warFile>
   <server>TomcatServer</server>
       <path>/MavenWeb</path>
   <username>tomcat</username>
       <password>tomcat</password>
    </configuration>
</plugin>

.m2/settings.xml 和 /home/shebin/apache-maven-3.0.4/conf/settings.xml

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

/home/shebin/apache-tomcat-7.0.35/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

我已经通过了各种解决方案,但我的方式没有任何效果。我的 Maven 版本是 3.0.4 并使用 tomcat7 插件。

4

4 回答 4

3

maven插件配置中的url应该是<url>http://127.0.0.1:8080/manager/text</url>与角色对应的manager-script

另外,值得注意的是,更改rolesin后{TOMCAT_HOME}/conf/tomcat-users.xml,您必须重新启动 tomcat 服务器才能重新加载配置。我知道这是常识,但我的经验告诉我,你们中的一些人可能真的停留在这里。

于 2014-09-25T03:28:30.640 回答
2

此错误消息

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.0:deploy  (default-cli) on project MavenWeb: Cannot invoke Tomcat manager: Connection to http://127.0.0.1:8080 refused: Connection refused -> [Help 1]

暗示这是与身份验证相关的。尝试改变这个

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-script"/>

来自 maven 插件的访问不会通过基于浏览器的管理客户端进行:)

于 2013-01-30T11:32:52.687 回答
2

我遇到了同样的问题。您需要添加一个额外的角色:manager-jmx。所以你的 tomcat-users.xml 文件应该有。

<user username="tomcat" password="tomcat" roles="manager-script, manager-jmx"/>
于 2014-03-21T15:10:38.190 回答
2

由于这篇文章中的要点,我也得到了这个工作。我坚持的事情是:POM 文件 - 你需要在路径的开头有一个斜杠(或者它试图将它安装在 /manager/ 下并且失败):

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <url>http://10.54.17.35:8080/manager/text</url>
        <server>LoginForTomcat</server>
        <path>/displayService</path>
    </configuration>
</plugin>

在 ~/.m2/settings.xml 中提供服务器凭据:

<servers>
    <server>
        <id>LoginForTomcat</id>
        <username>figgy</username>
        <password>passw0rd</password>
    </server>
</servers>

在tomcat服务器上,需要定义manager-script和manager-jmx:

  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <user username="figgy" password="passw0rd" roles="manager-gui,manager-script,manager-jmx"/>

在上面的帖子中查看这里的所有内容,发布此内容以澄清事情。

于 2018-02-14T12:45:25.857 回答