我是Tomcat
的新手。我们有一台开发机器,运行大约5个应用程序。即使它是开发人员,我们的客户在测试期间也会使用它。
所以说我们需要在一个类文件上做一个小改动。现在,我们必须关闭Tomcat(影响其他四个应用程序),删除WAR
文件(和Web应用程序目录),重新部署新的WAR
文件并重新启动Tomcat
。
当然,这会让一些人感到不安,因为它会破坏所有应用程序的所有登录会话。
有更好的方法吗?我的意思是,有没有办法只重新加载更改的 CLASS 而不是dev机器上的所有内容?
感谢。
答案 0 :(得分:54)
您是否尝试过使用Tomcat's Manager application?它允许您在不关闭Tomcat的情况下取消部署/部署war文件。
如果您不想使用Manager应用程序,也可以从webapps目录中删除war文件,Tomcat将在短时间内取消部署应用程序。然后,您可以将war文件复制回目录,Tomcat将部署war文件。
如果您在Windows上运行Tomcat,则可能需要configure您的Context才能锁定各种文件。
如果绝对无法停机,您可能需要查看Tomcat 7's Parallel deployments您可以同时使用相同的上下文路径部署多个版本的Web应用程序。用于将请求与上下文版本匹配的规则如下:
答案 1 :(得分:23)
有多种简单方法。
只需触摸任何webapp的web.xml即可。
touch /usr/share/tomcat/webapps/<WEBAPP-NAME>/WEB-INF/web.xml
您还可以在WEB-INF / lib中更新特定的jar文件,然后触摸web.xml,而不是构建整个war文件并再次部署它。
删除webapps / YOUR_WEB_APP目录,Tomcat将在5秒内开始部署war(假设你的war文件仍然存在于webapps文件夹中)。
一般用新版本覆盖war文件会被tomcat自动重新部署。如果没有,您可以按照上面的说明触摸web.xml。
Copy已经展开的“目录”到您的webapps文件夹
答案 2 :(得分:20)
在apache tomcat的conf目录中,您可以找到context.xml文件。在该修改标记中&lt; Context reloadable =“true”&gt;。这应解决问题,您无需重启服务器