Maven项目中的Tomcat部署问题

时间:2013-01-30 11:19:41

标签: maven tomcat maven-3 pom.xml

我一直在尝试创建一个简单的基于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 个答案:

答案 0 :(得分: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插件的访问不会通过基于浏览器的管理客户端进行:)

答案 1 :(得分: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"/>

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

答案 2 :(得分:1)

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

<user username="tomcat" password="tomcat" roles="manager-script, manager-jmx"/>

答案 3 :(得分:1)

maven插件配置中的网址应为<url>http://127.0.0.1:8080/manager/text</url>,对应于角色manager-script

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