在JavaWeb的开发中,tomcat是最常用的web容器,使用tomcat部署web应用,常见的有三种方式,下面以我们在前面开发过的一个WebService的服务端为例(具体服务开发过程请参考:JavaWeb开发(三)CXF webService 服务端与客户端开发),介绍这三种应用部署方式。

(1)基本部署

在代码开发和调试过程中最为常见的部署方式,即直接把开发的web工程放入到 webapps的目录下,如果需要更新的话,直接替换工程里的文件后重启即可。具体如图:

webapps

此种方式并不常用于实际部署,因为在很多情况下,在租用和公用其他服务器的时候,很可能部署人员没有权限来在拷贝应用工程到webapps这个目录。

(2)修改server.xml 配置文件

在tomcat的conf目录中的server.xml中,在Host标签下,添加一个Context的标签即可,如:

<Context docBase="D:\xiaomager" reloadable="false" path="/xiaomager_context"/>

docBase:表示工程的具体位置,可以填写相对路径(即相对于webapps的路径),也可以使用绝对路径,在windows环境中需要加盘符,而在linux环境中最好使用绝对路径

reloadable:表示是否自动加载更新或改动的文件

path:表示访问路径,即用户通过浏览器访问时的path,这里可以指定一个不同于工程名的名字,制定后,就可以通过这个新名字来访问工程了,这样可以隐藏工程实际的名字

具体截图如下,我们把webapps下的xiaomager的工程移动到D盘目录下:

serverxml

然后通过url:http://localhost:7080/xiaomager_context/webService/cxfserver?wsdl,即可访问这个服务。

url

这种操作方式比较方便,如果在线上使用,需要维护多个版本的工程时,可以在server.xml里面配置成上图这样,然后在工程路径中,对正在使用的工程不添加任何日期后缀,而对于不再使用的添加后缀,如需要更新一个工程时,先停止tocmat,然后把当前正在使用的工程添加当前日期后缀,表示这个工程是当前日期被替换的,然后,用新添加的工程不带日期后缀名,这样表示要使用这个新的工程了,这样操作就不用反复修改server.xml这个配置文件里应用工程的具体位置(因为无论怎么更新,当前正在使用的工程都是不带有时间后缀的,这也很像tomcat自己的log里面目录的样子),直接启动即可。

不过这种模式要修改tomca的配置文件,破坏了文件结构,推荐使用第三种方式

(3)扩展方式

即在tomcat的  conf\Catalina\localhost 这个目录下,新建一个xml文件,这个xml文件的名字就是url访问的工程名字,即虚拟路径,然后在这个文件中,添加如下内容即可,非常简单:

<Context docBase="D:\xiaomager" />

如果有多层路径,则用#间隔,如路径为http://localhost:8080/a/b/c,则文件名为a#b#c.xml,具体如图:

localhost

直接启动tocmat,访问url:http://localhost:7080/xiaomager_localhost/webService/cxfserver?wsdl,截图如下:

urllocalhost

以上都是使用tomcat7,当然这些也都适用于tomcat6。

总结

tomcat部署应用的三种方式

(1)直接把工程放在webapps目录下

(2)修改conf/server.xml配置文件,在Host标签下添加Context标签,指定具体工程位置和虚拟访问路径

<Context docBase="D:\xiaomager" reloadable="false" path="/xiaomager_context"/>

(3)在 conf\Catalina\localhost 目录下,新建一个xml文件,这个文件名就是虚拟路径(url访问的路径),内容需要指定具体工程的位置,如

<Context docBase="D:\xiaomager" />

两点建议

(4)虽说有这个热部署的参数可以配置,但是建议如果有重大更新和改变,最好停止tomcat,更新文件之后,在启动tomat即可。

(5)推荐使用第三种方式,不破坏tomcat的文件内容,而且简单易学。

tomcat参数详解与性能优化

其实,前面有些文章已经涉及到相关的内容了,比如: 快速学会Linux安装jdk和tomcat tomcat部署应用的三种方法 本文会详细介绍一下在tomcat安装完成之后一般...

阅读全文

JavaWeb开发(四)CXF webService 客户端开发(动态调用与wsdl2java生成)

前面三章分别介绍了: JavaWeb开发(一)框架搭建(使用Maven搭建JavaWeb工程) JavaWeb开发(二)框架搭建(给工程添加spring支持) JavaWeb开发(三)CXF ...

阅读全文

JavaWeb开发(三)CXF webService 服务端与客户端开发

前面两章分别介绍了: JavaWeb开发(一)框架搭建(使用Maven搭建JavaWeb工程) JavaWeb开发(二)框架搭建(给工程添加spring支持) 其中在第二章最后,我们...

阅读全文

2 条评论

欢迎留言