工作札记:JBoss下jsp页面修改后没有动态更新的问题解决方案

最近接手一个新项目,用到JBoss,今天发现修改了jsp页面的内容之后,刷新页面没有任何效果。擦!!!

问题探索过程:

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中清理项目,重新构建、部署。

最后,启动服务即可看到效果啦。

看到困扰了半天的问题被解决掉真好开森有木有!!!  得意

猜你喜欢

转载自blog.csdn.net/yang_lover/article/details/44786007