我一直在尝试创建一个简单的基于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插件。
答案 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服务器才能重新加载配置。我知道这是常识,但我的经验告诉我,你们中的一些人可能真的被困在这里。