配置tomcat的manager
编辑远程tomcat服务器下的conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui,manager-script" />
password为自己的密码
manager-gui
允许访问html接口(即URL路径为/manager/html/*)
manager-script
允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx
允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status
允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
注意对于tomcat9来说,不能同时赋予用户manager-script和manager-gui角色
新建manager.xml
在tomcat服务器的conf/Catalina/localhost/目录下创建一个manager.xml文件,写入如下值:
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
然后在浏览器中输入http://serverip:port/manager/html,此时会弹出要求输入用户名和密码对话框,输入manager-gui对应的用户和密码登录管理控制台(其中serverip为服务器ip,如果服务器在本地就是localhost或者127.0.0.1,端口为tomcat端口,默认8080)。以此确认manager是否配置正确。正确结果示例如下:
在maven项目中添加配置
在pom.xml文件中,在plugins节点下添加如下plugin节点
</plugin>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path><!-- 访问路径-->
<uriEncoding>UTF-8</uriEncoding>
<!--http://localhost:8080/manager/stop?path=/ //停止 -->
<!--http://localhost:8080/manager/start?path=/ //启动 -->
<!--http://localhost:8080/manager/text/deploy?path=/ //部署 -->
<!--http://localhost:8080/manager/text/undeploy?path=/ //卸载 -->
<url>http://serverip:port/manager/text</url><!-- 远程服务器url地址 -->
<username>tomcat</username>
<password>tomcat</password>
<update>true</update>
</configuration>
</plugin>
</plugin>
将上面的serverip和port换成自己tomcat服务器的ip和端口。密码换成上面配置的manager-script角色的密码。path改为项目在tomcat服务器中的部署路径。
然后进行部署,如果是第一次部署,运行mvn tomcat7:deploy进行自动部署(对于tomcat8,9,也是使用tomcat7命令),如果是更新了代码后重新部署更新,运行mvn tomcat7:redeploy,如果第一次部署使用mvn tomcat7:redeploy,则只会执行上传war文件,服务器不会自动解压部署。如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置<update>true</update>,不然会报错。
自选配置
<!-- 忽略项目中测试错误,在发布过程中会运行项目中的测试代码-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
运行Maven
mvn tomcat7:deploy
mvn clean install ----->mvn tomcat7:redeploy
保证服务器在启动状态
否则报错
Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection to http://172.23.26.61:8080 refused: Connec
tion refused: connect
正常状态
Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection reset by peer: socket write error