您的位置:首页 > 运维架构 > Tomcat

eclipse tomcat热部署问题相关

2016-02-19 11:43 253 查看
使用eclipse,修改代码后,使用了热部署,碰到了几个问题

第一个问题

修改代码后,调试自动停止到一个地方 processworkerExit(w.... 的地方。很烦人,去掉java->debug->suspend execution on uncaught exceptions 选项钱的对勾就行了。(为啥会出现这种情况呢,可以参考第二个问题的回答,因为使用的是reloadable="true"
相当于每次都是重启tomcat来进行更新,而不是直接更新,而每次重启的时候呢,不会关闭所有线程,导致出现异常,出现没有捕捉的异常的时候呢,就进入了processworker这个地方了。)

tomcat server.xml 中 <Context reloadable="false" ......

参考:http://my.oschina.net/u/1175952/blog/202356?fromerr=9xMSzzqY

第二个问题

虽然可以了,但是每次重启的时候,会报异常,

有个帖子里是这么回答的,感觉是这个意思。 参考:http://bbs.csdn.net/topics/390738069

这个是在关闭应用服务器或重新部署装载项目失败会发生。当应用程序卸载时,并不会关闭所有的线程。当 tomcat 已经关闭了其类加载器后,一些线程依然会继续运行,这样就导致出错,这些错误就会被到日志文件里。

处理方式,按照帖子里面来的即可,不过修改的时候注意,如果是使用elipse自带的tomcat,请在左侧project explorer里面找到Server文件夹
,在这个下面的server.xml里进行修改。或者在servers就是tomcat部署webapp的地方,双击服务器,切换到modules界面修改其中的autoreload改为disabled,和前面直接改配置是一个效果。

如果改了第二个问题,第一个问题其实也不用处理,因为tomcat没有重启,所以不会出现有额外的异常。也不会跳到processworker
这个地方了。

第三个问题

虽然该上面可以热部署了,也不会出错了,修改后台代码可以达到效果,但是资源文件 修改后没办法,也就是说 资源文件想要让他热部署,reloadable就不能改为false,资源文件修改只能通过reloadable为true,也就是每次热部署时自动启动服务器来实现热部署的效果。
这样的话就只能忍受控制台的 报错了。或者 资源文件自己手动处理。

测试发现 myeclipse 资源文件也需要 重新部署。一样的。

另外不重新部署 所支持的 貌似只是java后台代码方法里面的内容,改方法名,加参数,修改配置文件都需要重新启动tomcat。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: