【问题标题】:How to hot-deploy jsp file to tomcat?如何将jsp文件热部署到tomcat?
【发布时间】:2013-02-07 09:25:42
【问题描述】:

我不想每次在 JSP 文件中进行一点编辑时都构建一个 war 文件。我希望事情能像 PHP 一样工作。如何热部署到 tomcat 服务器?热部署是 java 标准吗?

这种热部署可以在我的软件的发布版本中使用吗?

【问题讨论】:

  • 仅供参考 JSR-88 描述了 Java EE 部署标准:download.oracle.com/otn-pub/jcp/…。根据我的经验,频繁的热部署经常会导致类没有从内存中释放并导致 OOME PermGen 异常。
  • 使用exploded war并复制JSP文件。
  • JRebel 是一个很好的热部署工具。如果您使用 DI 框架,它还支持重新初始化 bean。但是如果它只是一个 JSP 文件,那么您需要做的就是将文件复制过来

标签: java jsp tomcat


【解决方案1】:

由于链接的问题并没有真正深入细节......

$CATALINA_BASE/conf/server.xml 中,你需要配置本地服务器来解压WARs。这是我的开发服务器的示例:

 <Host appBase="webapps" autoDeploy="true" deployOnStartup="true" 
       deployXML="true" name="localhost" unpackWARs="true">

默认情况下,Tomcat 将检查 JSP 文件的更改。实际上,您必须更改它以用于生产,如 here 所述。

完成这些更改后,您将在 $CATALINA_BASE/work/Catalina/localhost 中找到您的网络应用(再次假设默认安装;如果您正在配置服务器名称,则它不会是 localhost)。就地编辑文件,下次加载页面时会显示更改。

这种热部署是否可以在我的软件的发布版本中使用

如果您想避免难以追踪的错误,则不要这样做。

【讨论】:

    【解决方案2】:

    我今天遇到了同样的问题,使用爆炸的 .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\&lt;context&gt;\WEB-INF\...

    然后在我的浏览器中快速重新加载 (F5) 以查看更改。

    奖励:当我现在将 .class 或 .jar 文件复制到 /WEB-INF 时,Tomcat 也会重新加载其所有资源 :)

    【讨论】:

    • 重新加载是否意味着重新部署/重新启动 web 应用程序?无论如何,WatchedResource 似乎只添加它监视的其他内容,并且如果您有reloadable=true,它也会自动监视 web.xml 和 WEB-INF/lib/*:stackoverflow.com/a/1800802/32453
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2012-03-03
    相关资源
    最近更新 更多