【问题标题】:Can I avoid redeployment of a project in WebLogic, if I only change JSPs?如果我只更改 JSP,是否可以避免在 WebLogic 中重新部署项目?
【发布时间】:2018-05-01 15:18:42
【问题描述】:

我有一个在 WebLogic 服务器内部运行的项目。我对代码所做的 80% 更改仅影响 JSP 文件(不影响类文件)。这些 JSP 文件包含前端逻辑。

每当我更改 JSP 页面时,我都需要执行以下步骤来查看我的更改:

  1. mvn install 在源目录中。
  2. 在 WebLogic 管理控制台中重新部署应用程序(“部署”、“更新”)。

如果我唯一更改的是 JSP 文件(因此我不接触 Java 文件,没有修改任何类文件),是否可以避免这两个步骤?

请注意,有问题的应用程序是在 WebLogic 中设置的,因此它会读取包含类文件 (myProject/target) 的目录,而不是 WAR 文件。

我不知道 JRebel 是否支持 WebLogic。我知道的唯一替代方案DCEVM 根据最后一条语句here 不支持WebLogic。

更新 1(02.05.2018 15:23 MSK):更改

    <wls:resource-reload-check-secs>-1</wls:resource-reload-check-secs>

    <wls:resource-reload-check-secs>1</wls:resource-reload-check-secs>

myProject/src/main/webapp/WEB-INF/weblogic.xml 没有帮助。当我部署应用程序,然后对 JSP 文件进行更改,然后运行 ​​mvn install 时,更改不会生效。

【问题讨论】:

  • JRebel 当然支持 WebLogic 和重新加载 JSP-s。

标签: java weblogic weblogic12c jrebel dcevm


【解决方案1】:

weblogic.xml 中有 page-check-seconds 属性(除其他之外)。看看"weblogic.xml"

【讨论】:

  • 请确保不要将此设置部署到 production 中。这将导致 JSP 在每个请求上都被重新编译,从而导致文件系统上的资源锁定和排队。仅在开发中使用它。
  • 我尝试了您的解决方案(请参阅更新 1),但没有成功。欢迎提出我可以做的不同的建议。
  • @DP_ 很抱歉,您也添加了“page-check-seconds”?只需确保重新部署 webapp。如果您仍然有问题,您可能希望使用控制台/WLST 来获取运行时数据 (MBean) 并启用调试标志。如果你碰巧知道 jsp 编译路径,你也可以验证 .java/.class 文件的时间戳。
【解决方案2】:

如果你在 dev 模式下运行而不是 prod,wls 将在每次 jsp 更改源时重新部署

【讨论】:

    【解决方案3】:

    不,有几个原因。 JSP 必须编译。它们不是简单的 html 页面。它们也被服务器缓存。您绝对必须重新部署该项目。

    【讨论】:

    • 这不是真的。使用 page-check-secondsresource-reload-check-secs 之类的标志,您不仅可以部署新的 JSP,还可以部署新的静态文件,例如 .js。
    猜你喜欢
    • 2012-06-17
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多