帅先勃

博客园 首页 新随笔 联系 订阅 管理

在做java web开发时,常用的服务器就是tomcat了。如果tomcat不能实现热部署,那么恐怕每次更改文件进行发布就尤其费时了。

热部署定义:在未改变class文件的签名的前提下,文件的修改是不需要进行重新发布的。

class签名:方法名,参数,返回值。

对于servlet,需要关注其编译后的class文件位置,对于jsp亦是。不过不同的是jsp又需要编译为.java文件,亦即servlet。只要class文件和jsp在同一项目下,tomcat就能进行热部署。如此按照这个思想,再对应下面配置的思路,无论使用何种IDE都是可以行得通。

这里介绍使用或未使用maven。

未使用maven。

在未使用maven的情况下,推荐tomcat配置如下图:

Server Locations建议改为tomcat的安装目录,便于查找。Publishing是必然要改为Never publish automticlly。tomcat启动模式也必须以debug模式。然而你发现即使这样,jsp依然无法热部署。

如果既要对jsp也同时实现热部署,需要先改动项目编译的class路径到项目的WebContent下。更改方法:buildpath->config build path->source。更改下面的default output filder到你的WebContent下面classes文件夹(如果没有就建一个吧,这些编译文件不是源码可以不用提交svn)。如果是MyEclipse就是WebRoot,并且已经自动编译到classes文件夹下了,就不需要上一步,从这里讲,MyEclipse还是方便的。然后改动Server下的server.xml,指向项目的绝对路径,记得是项目的下一级的WebContent。

总之,WebContent下一定要有你项目的class文件和jsp文件。这样就实现热部署了。

<Context docBase="web2" path="/web2" reloadable="false" source="org.eclipse.jst.jee.server:web2"/>
改为:
<Context docBase="D:\eclipsewor1\web2\WebContent" path="/web2" reloadable="false"/>

maven下实现热部署。

maven实现热部署比较麻烦,比较maven生成的文件太多了,但是还是按照以上思路。

要保证你的WebContent文件(可以理解为根目录文件)里面有你项目的编译后的一切。

1,利用maven建立一个web项目。

2,更改编译文件路径。更改后,把Allow output folders for source folders勾掉再勾上,触发监听以改动上面文件的编译路径。

3,更改server.xml文件的路径。(2,3参考以上两点。)

更改后的server.xml文件

<Context docBase="hah1" path="/hah1" reloadable="false" source="org.eclipse.jst.jee.server:octopus"/></Host>

tomcat配置:

注:maven创建javaweb项目和java项目请参考:

posted on 2015-10-23 01:21  帅先勃  阅读(1379)  评论(0编辑  收藏  举报