tomcat部署项目方式

三大部署方式
1.   Context描述文件部署
通过独立的Context文件描述清楚项目的访问路径和地址,tomcat在启动的时候会解析这个Context文件,创建一个Context对象。

         Context文件的存储路径默认路径(通过server文件配置)为:tomcat/conf/<Engine name属性名称>/<Host name属性名称>



由于tomcat的Engine和Host都有默认的名称,所以默认的存储路径为:tomcat/conf/Catalina/localhost/*.xml(xml文件可以随意命名)

         如果想将Context描述文件放到其它位置而非默认位置,那么可以通过Host标签的xmlBase属性指定,server配置文件中默认是没有给Host标签配置xmlBase属性的,自己加上即可。



Context文件内容如何配置:

<Context path=”项目的访问地址,可以不配置”docBase=”项目的存储地址根目录”></Context>

例如:

<Context path=”” docBase=”/home/app/wxscs”></Context>



优点
1)  项目可以存储在服务器的任意位置,不一定要在tomcat目录下。

2)  项目部署文件没有在server.xml文件中配置,和tomcat的文件解耦。

3)  配置灵活,对服务器的侵入小。

2.   Web目录部署
这种部署方式是tomcat中最常见的,我们只需要将Web应用的所有资源文件(js,css,html,class等)复制到Host标签指定的appBase(webapps)目录下即可。



如果在eclipse中配置好了,那么在eclipse中启动tomcat的时候,tomcat会将项目的资源文件复制到这个目录下。但是eclipse默认将应用复制到了其它目录,而不是tomcat的webapps目录下。

如何在eclipse中设置项目复制到tomcat的webapps下



我们只需要将配置这样修改即可,那么项目启动的时候可以去tomcat的webapps目录下看是不是有自己项目的资源文件。(由于要拷贝资源,所有eclipse启动大项目的时候会很慢)



通过Context配置文件



         Web目录的部署方式同样也是支持Context配置文件来启动项目的。只不过比较麻烦,而且没有那么灵活。需要将方式一的配置文件放置在Web应用的META-INF目录下,文件名为context.xml(不要随意起,要用这个)。那么Context配置的name/path/webappVersion/docBase这4个属性不可以自己配置定义,这些均由Web目录的路径以及名称确定。



         项目启动的时候,如果Host标签的deployXML属性值为true(那么就表示通过Context描述文件部署),并且存在META-INF/context.xml文件,而且context.xml的Context标签的copyXML属性为true,表示复制这个文件。Tomcat会自动将这个描述文件复制到:tomcat/conf/<Engine name属性名称>/<Host name属性名称>下,文件名称和Web应用目录名一致。



         那么什么情况下不会通过Context配置文件部署呢?如果Host的deployXML属性值为false则不会。

3.   WAR包部署
War包部署和Web目录部署是一样的,是不过是war包是经过压缩的而已,只要将war包拷贝到tomcat的目录下即可,不用解压。如果没有修改server配置文件,那么就拷贝到webapps目录下。

Tomcat中多个项目不想启动多个
         如果web目录部署或者WAR包部署,tomcat的目录下已经存在多个其它项目,那么只想启动一个如何处理呢?其实不需要删除其它项目。

         通过Host的deployIgnore配置过滤规则,就可以启动的时候过滤指定的项目。这里不展开讲解。

更多技术资讯可关注:itheimaGZ获取(公冢号)

发布了584 篇原创文章 · 获赞 3 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/u010395024/article/details/104356390