600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径

eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径

时间:2018-11-19 19:36:06

相关推荐

eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径

为了避免每次修改java文件eclipse都自动重启耗时较长,研究了网上方法,在eclipse+tomcat7本机实践了下可行。

原理:将eclipse工程的WebContent直接作为部署目录,你的修改相当于直接在部署目录里修改,所以不需要发布publish了就可以关闭tomcat自动部署和重启。把class的输入目录放在默认的WebContent/WEB-INF/classes下,修改java的时候eclipse自动将修改后的class进行替换。

效果:非关键类可以即时生效,如果是一些与session有关的类可能会导致错误,以及只加载一次的文件xml可能不会生效,这时手工重启tomcat即可。总的来说在大部分时候还是很方便的,减少了tomcat重启次数,节省了时间,提高了效率。

具体操作:

eclipse下修改tomcat的server.xml,在Host标签下修改Context标签的docBase,直接将docBase指定为项目的WebContent路径,有的项目是WebRoot文件夹,根据自己的项目来。

我的配置:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/><Context docBase="E:/zxw/workspace/0311workspace/workspace/project/WebContent" path="/project" reloadable="false"><Loader className="org.apache.catalina.loader.VirtualWebappLoader" searchVirtualFirst="false" virtualClasspath="E:/zxw/workspace/0311workspace/workspace/project/WebContent/WEB-INF/lib/*.jar"></Loader> </Context> </Host>

docBase就是发布目录

path是你项目名称

reloadable="false" 网上说这个是关闭tomcat自动部署的(tomcat自动部署自后就会自动重启),我们把项目的目录作为部署目录就不需要进行部署了,所以设置为false。

virtualClasspath 这个是加载jar包的路径配置你的lib目录下的jar包:WebContent/WEB-INF/lib/*.jar 。这个据说tomcat6不支持,tomcat7支持。

注意:项目编译的classd的输出目录要在WebContent/WEB-INF/classes ,否则的话找不到class的,web工程的结构就是这样。不在这个目录的要修改下项目的默认输出目录:

项目右键 -》properties -》Java Build Path -》source -》Default output folder

参考资料:

http://simon-/blog/2102421

/girl_pro/article/details/50965845

/feilongjian001/article/details/8576392

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。