【问题标题】:JSP hot/auto deploy not working in JBoss ES 6.2 w/ Liferay 6.2JSP 热/自动部署在带有 Liferay 6.2 的 JBoss ES 6.2 中不起作用
【发布时间】:2018-05-03 03:26:26
【问题描述】:

我正在从事一个在 JBoss ES 6.2 上使用 Liferay 6.2 的项目(JBoss AS 7.x,据我所知)。我正在使用 Liferay 创建的 ANT 脚本来执行我的部署,但由于某些奇怪的原因,JSP 文件更改没有被拾取。每次我对 JSP 进行更改时,我都必须关闭 JBoss,核对独立/tmp 下的文件,然后重新启动 JBoss。 Java 更改似乎部署得很好。例如,如果我在我的 portlet 代码中添加一条日志消息并更新我的 JSP 中的一些 HTML 文本并部署 portlet 项目,我会立即看到我的日志条目,但页面文本没有更改。不用说,每次 UI 更改/调整都必须重新启动整个应用服务器,这大大降低了我的工作效率。

我不知道需要哪些信息来提供帮助。

【问题讨论】:

    标签: jsp jboss liferay hotdeploy


    【解决方案1】:

    对我来说,在standalone.xml 中添加以下几行是可行的。

        <subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
            <configuration>
                <jsp-configuration development="true" />
            </configuration>
            ...
        </subsystem>
    

    【讨论】:

      【解决方案2】:

      在部署项目时检查是否存在时区问题:: 如果 JSP 上的时间戳太旧 1 小时(因为时区错误)并且之前的部署/测试是 10 分钟前,那么 JSP 可能已经10 分钟前编译 - 距离(更新的)jsp 日期还有 50 分钟,因此无需重新编译。

      我希望这个时区解释不是太混乱并且可以理解。

      【讨论】:

      • 我该去哪里检查?我的意思是,系统设置为东部时间,但它最初是山区时间。 JBoss 里面有设置吗?
      • 检查 jboss 是否在某处有临时编译的 jsps 并比较它们的时间戳。 tomcat 将它们放在“/work”文件夹中
      • 好吧,我会这样做的。但我已经可以告诉你我的 JBoss 启动报告说时区设置为 GMT,所以我 99.9% 确定这是问题所在,但我不知道如何让它不是 GMT。
      • 还要检查已部署代码中的时间戳 - 如果您的应用服务器配置正确,那么您的 CI 服务器(或您构建可部署的任何位置)可能不是。自从我在现实生活中看到这一点以来已经有一段时间了,但我肯定已经看到了。当然,也可以是别的……
      • 所以,我做了一个简单的测试:因为 JBoss 在 JAVA_OPTS 中报告时区是 GMT,我只是将我的工作站设置为 GMT。维奥拉! JSP 热部署现在工作正常。不过,我无法确定 JBoss 从哪里获得 -Duser.timezone=GMT。正如我所说,我已经搜索了所有我能找到的文件,但什么也没有。
      猜你喜欢
      • 1970-01-01
      • 2014-02-18
      • 2014-10-12
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      相关资源
      最近更新 更多