工作札记:JBoss下jsp页面修改后没有动态更新的问题解决方案
2015-03-31 21:22
381 查看
最近接手一个新项目,用到JBoss,今天发现修改了jsp页面的内容之后,刷新页面没有任何效果。擦!!!
2.好吧,看来不是缓存的问题。再打开work文件夹,这里放的是编译好的文件,也就是说,浏览器其实访问的是这里面的页面。打开这个文件夹后,发现文件都没有更新。。。。这什么情况?百思不得其解啊!问问度娘去~
3.嗯。度娘告诉我这其实是热部署没有配置好。于是看到某君A的答案是酱紫的:
修改 server/default/deploy/jboss-web.deployer/context.xml 文件(红色的部分)
你以为这样问题就解决了?Too Young !!! 我又看到某君B的说要把上面那两个地方的值设置为 false !
我.......到底是想闹哪样?!于是去了解了下,这部分的代码意思是这样的:
如果这个参数为true,那么将组织任何文件锁。这将明显的影响应用的启动时间,但允许webapps,可能发生锁的平台和配置下,支持完整的热部署和热卸载。如果不配置,默认值是false;
如果设置为true,有一些副作用,包括屏蔽了JSP文件在运行服务器上的重新加载。
如果设置为true,且部署在Host的AppBase目录外面(默认是webapps),在Tomcat关闭的时候将导致应用被删除。
也就是说,如果想让JSP页面动态部署,上面两个地方的值就应该设置成false. 另外需要注意的是,上面两个地方设置为true后,tomcat(Jboss集成了tomcat)是用了副本缓存的,所以Jsp页面一致不能及时更新。
修改内容:<Host name="localhost" autoDeploy="true" deployOnStartup="false" deployXML="false"
configClass="org.jboss.web.tomcat.security.config.JBossContextConfig" >
2.修改路径:server\default\deploy\jboss-web.deployer\context.xml
修改内容:<Context cookies="true" crossContext="true" reloadable="true">
<Manager pathname="" />
<InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceLis tener>
</Context>
3.修改路径:server\default\conf\jboss-service.xml
修改内容:<attribute name="ScanEnabled">true</attribute>
修改完成后,清理deploy下面部署的项目,删除work文件夹,删除deploy文件夹下面和项目名一样的.ear文件夹,例如项目名是demo,则删除 demo.ear文件夹。然后在myeclipse中清理项目,重新构建、部署。
最后,启动服务即可看到效果啦。
看到困扰了半天的问题被解决掉真好开森有木有!!!
问题探索过程:
1.打开JBOSS的部署文件夹(deploy),发现JSP文件已经被部署过来了。嗯?部署成功了为什么没有效果呢 ?难道是是缓存?于是清理项目,重新部署,清理浏览器缓存,重启服务器.....结果问题依旧。我*&……%¥%&%%……&2.好吧,看来不是缓存的问题。再打开work文件夹,这里放的是编译好的文件,也就是说,浏览器其实访问的是这里面的页面。打开这个文件夹后,发现文件都没有更新。。。。这什么情况?百思不得其解啊!问问度娘去~
3.嗯。度娘告诉我这其实是热部署没有配置好。于是看到某君A的答案是酱紫的:
修改 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>
你以为这样问题就解决了?Too Young !!! 我又看到某君B的说要把上面那两个地方的值设置为 false !
我.......到底是想闹哪样?!于是去了解了下,这部分的代码意思是这样的:
antiResourceLocking:
如果这个参数为true,那么将组织任何文件锁。这将明显的影响应用的启动时间,但允许webapps,可能发生锁的平台和配置下,支持完整的热部署和热卸载。如果不配置,默认值是false;
如果设置为true,有一些副作用,包括屏蔽了JSP文件在运行服务器上的重新加载。
如果设置为true,且部署在Host的AppBase目录外面(默认是webapps),在Tomcat关闭的时候将导致应用被删除。
antiJARLocking:
加这个配置的原因是,某些程序自己带的JAR包,如日志,驱动等,TOMCAT会锁定这些JAR,这样无法服务器运行时卸载程序。加上这个配置后,就可以了。
也就是说,如果想让JSP页面动态部署,上面两个地方的值就应该设置成false. 另外需要注意的是,上面两个地方设置为true后,tomcat(Jboss集成了tomcat)是用了副本缓存的,所以Jsp页面一致不能及时更新。
完整JBOSS热部署配置过程:
1.修改路径:server\default\deploy\jboss-web.deployer\server.xml修改内容:<Host name="localhost" autoDeploy="true" deployOnStartup="false" deployXML="false"
configClass="org.jboss.web.tomcat.security.config.JBossContextConfig" >
2.修改路径:server\default\deploy\jboss-web.deployer\context.xml
修改内容:<Context cookies="true" crossContext="true" reloadable="true">
<Manager pathname="" />
<InstanceListener>org.jboss.web.tomcat.security.RunAsListener</InstanceLis tener>
</Context>
3.修改路径:server\default\conf\jboss-service.xml
修改内容:<attribute name="ScanEnabled">true</attribute>
修改完成后,清理deploy下面部署的项目,删除work文件夹,删除deploy文件夹下面和项目名一样的.ear文件夹,例如项目名是demo,则删除 demo.ear文件夹。然后在myeclipse中清理项目,重新构建、部署。
最后,启动服务即可看到效果啦。
看到困扰了半天的问题被解决掉真好开森有木有!!!
相关文章推荐
- MyEclipse修改了JSP页面,但Tomcat里的没有实时更新
- JBOSS JSP页面修改后要重新启动JBOSS才能重新部署上去 eclipse下 不同步
- jsp页面传入后台Action乱码问题解决方案
- jsp页面中动态添加上传输入项注意的问题:“添加上传文件”按钮的name属性值不能和onclick属性的值相同!!!
- JSP页面向后台传递数据乱码问题解决方案
- 在jsp页面中关于网页过期问题的解决方案
- 关于JSP中动态包含请求无法显示页面的问题 post请求页面中包含get请求
- 对于struts框架中jsp页面显示图片数据流问题解决方案
- Tomcat 下,JSP文件修改后,重新部署,页面不变化的问题
- [工作问题总结]IE6 缓存引起的页面无法重载问题及解决方案
- 关于在JSP中页面展示报错调试的一些问题归纳(持续更新中...)
- Servlet中jsp修改后浏览器页面没有变化——已解决
- js导入jsp页面乱码问题解决方案
- 解决MyEclipse中修改了JSP文件,在浏览器端没有同步更新的问题
- JSP动态生成页面中使用JavaScript消除里面没有信息的div等元素
- 在动态web工程中jsp页面的EL表达式没有效果
- 基于Tomcat服务的系统JSP页面不加载SWF问题的解决方案
- SSH框架项目+jsp页面+MySQL数据库,数据中文乱码问题解决方案合集
- 用cookie解决页面没有更新缓存只刷新一次页面的问题+跨域问题
- jsp页面中引入文件路径问题的解决方案(使用request获取项目路径)【原创】