【问题标题】:how can I check if portlet is deployed or active?如何检查 portlet 是否已部署或处于活动状态?
【发布时间】:2018-02-21 02:36:17
【问题描述】:

在我的工作中,有一个带有我们自己的 portlet 的 Portal(Liferay 是定制的),它们运行良好,但是所有它们的部署时间太长(30-40 分钟),我的目标之一是知道每个 portlet 何时是向上,通常用户必须进入 portlet 视图并检查 portlet 是否可用,但这被认为是不切实际的。

我正在制作一个 bash 脚本,基本上它通过 cURL 向每个 portlet 的视图执行 http 请求,但它并没有按照我想要的方式工作,因为即使未部署 portlet,资源也被标记为可用,您对这个问题有什么建议或什么吗?我会在下面附上一段我的代码

#!/bin/bash

portlet='web/view/your_first_portlet web/view/your_second_portlet';
for i in $portlet;do
   if [ -z "$(curl -v --silent http://portal/$i 2>&1 | grep "The requested resource was not found.")" ]
   then
      echo "$i is ready"
    else
      echo "$i is NOT ready"
    fi
done

当 cURL 命令运行时,它会搜索字符串“未找到请求的资源”的出现。因为我发现当资源不可用时,在 catalina ouput(tomcat) 中会抛出 null,但使用 http 请求会在返回的代码中显示消息,但即使使用它,portlet 也未部署,脚本另有说明。

【问题讨论】:

    标签: bash curl liferay liferay-6 portlet


    【解决方案1】:

    如果单个 web 应用程序(带有 portlet)的部署需要 30 到 40 分钟,我会开始处理方面,而不是更耐心地等待解决方法。

    话虽如此,与其访问恰好部署了 portlet 的完整页面,不如在您的 portlet 中实现 serveResource 方法,为您感兴趣的每个 portlet 获取 resourceURL 并访问这个网址。仅当完全部署 portlet 时才会处理资源请求。这样evaluating the HTTP error code 就可以解决问题了。

    但最重要的是:找出需要这么长时间并缩短它的原因。

    【讨论】:

    • 谢谢你的回答,我解释错了,门户大约2分钟,但是所有portlet(大约50个portlet)的完整部署需要30-40分钟。我要弄清楚你提出的方法:)
    • 听起来还是很可怕。我想说还有改进的空间,例如通过将几个 portlet 组合成一个插件和其他调整措施
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多