tomcat 和 jboss的热部署(热发布)问题
所谓的热部署(热发布)(下面称为“热部署”),就是说,在web工程发布之后,不可避免的,会遇到修改BUG的问题。现在的热部署就是为了解决这个问题,其功能就是说:在不停止web服务的同时,对jsp和Java类进行修改,修改后的效果同时还能够在页面上显示出来。节省了调试时间,提高了效率。不过,修改配置文件是个例外,如果对配置文件做修改,一定要重启web服务。
常用的web服务器一般为tomcat和jboss,现一一做介绍。
1.tomcat热部署
在tomcat中支持热部署有两种方式(在原理上来说,这两种方式是一致的,只是放的位置不同)
a)在catalina_base/conf/catalina/localhost/中依照manager.xml定义一个xml文件,比如我的项目称作sodoperation,我们就可以写一个sodoperation.xml,内容如下:
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
其中,path指的是你在tomcat中的项目名称,就像manager一样,docBase是指你的项目所在的web目录。一直到欢迎页面为止(也就是web-inf的前一个目录)。但是一般来说,这个目录中最好不要有中文,如果有的话,可以在文件开始加入
<?xml version='1.0" encoding='utf-8' ?>来试一下,即整个文件变为:
<?xml version='1.0" encoding='utf-8' ?>
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
这样就可以了,如果用这种广告,同时使用myeclipse的部署的话,轻易不要remove,这样会使文件都会被删掉,不能持久。所以,建议使用第二种方法。
b)第二种方法和第一种方法在原理上是一致的,其区别就是位置的不同,这次在catalina_base/conf下的server.xml,在文件末加入:
<context path="/sodoperation" docBase="d:/myportal/sodoperation/src/webapp"/>
解释和上面一样,这种方法在启动tomcat后,会在catalina_base/conf/catalina/localhost/中加入一个与第一种方法的文件。这样保证,只要对server.xml不做修改,你可以随便对新生成的文件删除,对热部署没有任何问题
2.jboss热部署
在jboss中做热部署也有两种方法,因为jobss集成了tomcat,也可以说这两种方法是在jobss上的一个修改。
a)修改jboss-4.0.4RC1/server/default/deploy/jbossweb-tomcat55.sar/context.xml
<Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true">
<Manager pathname=""/>
<InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
</Context>
加上红色的部分,重启jboss,再用myeclipse Redeploy project的时候就不需要重启,部署完了直接开浏览器预览啦
在一个jboss中可以发布多个项目,如果修改一个项目后只想重启该项目,其它项目不重启,可以使用jboss的热部署。
1、修改jboss的配置文件server/default/deploy/jboss-web.deployer/context.xml
在Context元素中添加antiResourceLocking="true" 和 antiJARLocking="true" 属性,如下
[html] view plain copy print?
- <Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true" >
- <Manager pathname=""/>
- <InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
- </Context>
- <Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true" >
- <Manager pathname=""/>
- <InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
- </Context>
测试环境中,经常要更新代码,需要重新加载工程,以前的办法都是重启jboss,但是这个浪费太多的时间,有一个办法可以解决这个问题,就是jboss的热部署
#vim /usr/local/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/context.xml
- <Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true" >
- <Manager pathname=""/>
- <InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
- </Context>
- <Context cookies="true" crossContext="true" antiResourceLocking="true" antiJARLocking="true" >
- <Manager pathname=""/>
- <InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceListener>
- </Context>
加入红色部分,然后重启jboss,以后不需要重启jboss就可以加载工程
2、重启Jboss
3、修改项目下的web.xml(在web.xml中增加或者删除空行就可以),jboss就会只对该项目重新部署。
tomcat 和 jboss的热部署(热发布)问题的更多相关文章
- paip.提升用户体验--提升java的热部署热更新能力
paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力 "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应 ...
- SpringBoot SpringCloud 热部署 热加载 热调试
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] Crazy-Sp ...
- springboot热部署(二)——springboot热部署与发布
一.实现的方式概述 注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟) File- ...
- Eclipse+Tomcat实现热部署/热加载配置,修改java代码无需重启tomcat
一.Tomcat热加载配置 Eclipse Package Explorer中找到Servers,点击你所需要运行的tomcat的config配置文件,例如 demo-config,双击该文件夹下的s ...
- IntelliJ IDEA中Spring Boot项目使用spring-boot-devtools无法实现热部署/热更新的问题解决
这个设置真的和Eclipse有很大区别,Eclipse中只要运行之后就可实现修改文件自动重启.但IDEA不太一样,需要做如下配置: 前提: 1.添加spring-boot-devtools到POM. ...
- maven实现项目热部署
1.Tomcat的配置 我们需要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. 在tomcat的安装 ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
- Intellij IDEA 4种配置热部署的方法【转】【补】
热加载 热加载可以使代码修改后无须重启服务器,就可以加载更改的代码.(其实分java和非java代码,本处可以让java代码立即生效且不重启服务) 第1种:修改服务器配置,使得IDEA窗口失去焦点时, ...
- SpringBoot笔记十七:热部署
目录 什么是热部署 Devtools热部署 什么是热部署 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用. 举个例子,王者荣耀的更新有时候就是热部署,热更新,就是他提示你更新,更新40 ...
- springboot项目:以run as-->spring boot app方式启动,配置热部署(亲测可用!!!)
1.在pom.xml中添加热部署依赖 <!-- 热部署 --> <!-- devtools可以实现页面热部署(即页面修改后会立即生效, 这个可以直接在application.prop ...
随机推荐
- apiCloud组件:swiper
一.apicloud中基于swiper封装了一个模块供调用.就是swiper.js 页面引入js就行 <script type="text/javascript" src=& ...
- 常用CSS代码片段常见css bug
1.禁止文字被选中 .unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select ...
- 怎么让composer加速(转)
composer 在install的时候会做这几个事情: 去packagist.org中寻找对应需要的包的版本信息和下载地址 循环下载对应的包 解压安装对应的包 我们平时使用composer慢就可能在 ...
- 路飞学城Python-Day78
17-静态文件配置1 静态的文件的配置不能直接将CSS.JS文件直接放在templates的文件夹中 要将所有的静态文件放在static的文件夹中,然后配置上静态文件static的路径 要想访问Dja ...
- Git学习总结(11)——Git撤销操作详解
本文主要讨论和撤销有关的 git 操作.目的是让读者在遇到关于撤销问题时能够方便迅速对照执行解决问题,而不用去翻阅参数繁多的 git 使用说明. 一开始你只需了解大致功能即可,不必记住所有命令和具体参 ...
- HDU 3849 By Recognizing These Guys, We Find Social Networks Useful
By Recognizing These Guys, We Find Social Networks Useful Time Limit: 1000ms Memory Limit: 65536KB T ...
- Arduino基本函数介绍
转载自http://cnlearn.linksprite.com/?p=5248#.VwZrzvl95hE 数字 I/O (1)pinMode(pin, mode) 数字IO 口输入输出模式定义函数, ...
- 洛谷—— P1262 间谍网络
https://www.luogu.org/problem/show?pid=1262 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A ...
- POJ 2190
直接枚举0~X就可以了...我开始竟然往扩展欧几里德定理想了,呃呃--- #include <iostream> #include <cstdlib> #include < ...
- POJ 1320
作弊了--!该题可以通过因式分解得到一个佩尔方程....要不是学着这章,估计想不到.. 得到x1,y1后,就直接代入递推式递推了 x[n]=x[n-1]*x[1]+d*y[n-1]*y[1] y[n] ...