使用mvn tomcat7:redeploy时出现如下情况

经过查询Tomcat文档后发现,这是由于Tomcat的远程地址拦截器造成的结果,默认情况下,Tomcat的Manager和Host-Manager只接受本机的请求,而要让它接受远程的请求,需要添加上面提到的manager.xml的配置(第一步配置过了就不要加了),也就是:
<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
由于Tomcat的Manager可以执行项目的部署、卸载等敏感操作,如果你只想允许特定的IP地址访问Manager,可在上面的allow属性中设置规则。具体规则设置见下面的链接:
http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_Address_Filter
问题说明:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Configuring_Manager_Application_Access
(3)自动部署显示成功,war包也上传成功,但是war不自动解压自动部署。
如果你在tomcat的server.xml中通过设置<Context>标签来部署相同名称的项目的话,maven发布到该服务器的war不会被自动解压,部署,更新,需要去掉server.xml中该项目的<Context>标签。
5. 其他
如果想要实现对部署路径加版本,可将上面tomcat7-maven-pluginconfiguration的path设置为
<path>/webapp#version</path>
的形式,部署后,当前项目在服务器端的路径就是/webapp/version。举个例子,如果path设置为 test#1.0,那么服务端项目实际的路径就是/test/1.0。如下:

如果名字和版本号之间是两个#,效果就是制定当前项目在manager网页中显示的版本,路径不变,举个例子,path设置为test##1.0,实际部署路径为/test,但是在manager网页中,显示如下,注意Version一栏的值:

参考:
http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming









