2017-09-12 3 views
0

私の仕事では、独自のポートレットを備えたポータル(Liferayではカスタマイズされています)がありますが、それらは完全に機能しますが、すべての展開には時間がかかりすぎます(30-40分)。基本的には、ユーザーはポートレット・ビューに行き、ポートレットが使用可能かどうかをチェックする必要がありますが、これは現実的ではありません。ポートレットがデプロイされているかアクティブであるかを確認するにはどうすればよいですか?

私はbashスクリプトを作成していますが、基本的にcURLを使用してcURLを介してすべてのポートレットのビューにhttpリクエストを実行しますが、ポートレットがデプロイされていなくてもリソースがマークされてcurlコマンドを実行すると、それが文字列「要求されたリソースのocurrenceを検索すると利用できるように、あなたがこの問題の提案や何かを持っているん?私は

#!/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 

以下の私のコードの一部を添付します見つかりませんでした。"なぜなら、リソースが利用できないとき、catalina ouput(tomcat)ではnullがスローされますが、httpリクエストでは返されたコードの中にメッセージが表示されますが、ポートレットがデプロイされていないということです。

答えて

2

単一のwebapp(ポートレットを含む)の展開に30-40分かかる場合、私はそののアスペクトで作業を開始します。

ポートレットに配備された完全なページにアクセスする代わりに、ポートレットにserveResourceメソッドを実装して、興味のあるポートレットごとにresourceURLを取得してこのURLにアクセスしてください。リソース要求は、ポートレットが完全にデプロイされている場合にのみ処理されます。この方法でちょうどevaluating the HTTP error codeはトリックをする必要があります。

しかし何よりもまず、何がそんなに長くかかるかを見て、それを短縮してください。

+0

私は間違った説明をしてくれてありがとうございます。ポータルは約2分ですが、すべてのポートレット(約50個のポートレット)の完全な展開には30-40分かかります。私はあなたの提案された方法について把握するつもりです:) –

+2

まだ恐ろしい音。改善すべき余地があると思います。いくつかのポートレットを1つのプラグインと他のチューニング・メジャーに結合することによって –

関連する問題