2017-09-12 8 views
0

Dans mon travail avoir un portail (Liferay mais personnalisé) avec nos propres portlets, ils fonctionnent parfaitement, mais le déploiement de tous les prend trop de temps (30-40 minutes), un de mes objectifs est de savoir quand chaque portlet est en place En général, l'utilisateur doit aller dans la vue du portlet et vérifier si le portlet est disponible, mais cela est considéré comme peu pratique. Je crée un script bash, il exécute fondamentalement des requêtes http via cURL pour les vues de chaque portlet, mais cela ne fonctionne pas comme je le souhaitais, car même lorsque le portlet n'est pas déployé, la ressource est marquée comme disponible, avez-vous une suggestion ou quelque chose pour cette question ?, Je vais joindre un morceau de mon code ci-dessousComment puis-je vérifier si le portlet est déployé ou actif?

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

Lorsque la commande est exécutée cURL, il recherche d'une ocurrence de la chaîne « la ressource demandée n'a pas été trouvé." parce que j'ai découvert que quand la ressource n'est pas disponible, en catalina ouput (tomcat) jette un null, mais avec une requête http montre le message dans le code retourné, mais même avec le portlet n'est pas déployé et le script dit le contraire.

Répondre

2

Si le déploiement d'une seule application web (avec un portlet) prend 30-40 minutes, je commencerais à travailler sur aspect, plutôt que sur une solution de contournement pour attendre plus patiemment.

Cela étant dit, au lieu d'accéder à une pleine page qui se trouve à avoir le portlet déployé, que diriez-vous que vous mettre en œuvre une méthode serveResource dans vos portlets, obtenir le resourceURL pour chaque portlet qui vous intéresse et d'accéder simplement cette URL. Une demande de ressource ne sera traitée que si le portlet est entièrement déployé. De cette façon, juste evaluating the HTTP error code devrait faire l'affaire.

Mais avant tout: Découvrez ce qui prend si longtemps et le raccourcir.

+0

Je vous remercie pour votre réponse, je l'ai mal expliqué, le portail est en hausse d'environ 2 minutes, mais le déploiement complet de tous les portlets (environ 50 portlets) prend 30-40 minutes. Je vais comprendre votre méthode proposée :) –

+2

Toujours semble horrible. Je dirais qu'il y a encore de la place pour améliorer, par ex. en combinant plusieurs portlets dans un plugin et d'autres mesures de réglage –