我不想每次在JSP文件中进行一些编辑时都构建一个war文件。我想让事情像PHP一样工作。如何热部署到tomcat服务器?热部署是java的标准吗?
这种热部署可以在我的软件发布版本中使用吗?
发布于 2013-02-22 05:54:28
由于链接的问题并没有真正深入到细节...
在$CATALINA_BASE/conf/server.xml中,您需要配置本地服务器来解压缩WAR。下面是来自我的开发服务器的示例:
<Host appBase="webapps" autoDeploy="true" deployOnStartup="true"
deployXML="true" name="localhost" unpackWARs="true">默认情况下,Tomcat将检查对JSP文件的更改。事实上,正如here所描述的,您必须为生产更改这一点。
完成这些更改后,您将在$CATALINA_BASE/work/Catalina/localhost中找到您的web应用程序(再次假设是默认安装;如果您正在配置服务器名称,则不会是localhost)。就地编辑文件,更改将在下一次加载页面时显示。
就是这样的热部署,可以用在我的软件的一个发布版本中
如果您想要避免难以追踪的bug,就不需要。
发布于 2017-10-11 22:10:25
我今天也面临着同样的问题,使用一个爆炸的.war对我来说并不合适。
我的解决方案是在Tomcat ($CATALINA_BASE\conf\context.xml)中使用以下context.xml文件:
<Context reloadable="true">
<Resources cachingAllowed="false" cacheMaxSize="0" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Manager pathname="" />
</Context>我还在我的Jsp中使用了以下内容作为客户端缓存:
<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0);
%>tomcat重启后,可以只将Jsp复制到$CATALINA_BASE\webapps\<context>\WEB-INF\...
并在我的浏览器中执行一次快速重新加载(F5)以查看更改。
额外好处:当我现在将.class或.jar文件复制到/WEB-INF中时,Tomcat也会重新加载它的所有资源:)
https://stackoverflow.com/questions/15012693
复制相似问题