IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

Faire communiquer un objet entre deux portlets


Sujet :

Portails Java

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Faire communiquer un objet entre deux portlets
    Bonjour,

    Je viens de me mettre à Portlet 2.0 / Liferay, je débute en Portlet et travaille sous Eclipse.

    J'essaie actuellement de faire communiquer un objet (admettons une classe Z) entre deux portlets (A et B).
    Je travaille dans un répertoire "projets", et déploie mes portlets A et B automatiquement dans mon Tomcat avec "ant-deploy" et les fichiers build.xml (ces fichiers build.xml ayant été générés par le plugin Liferay SDK lors de la création des répertoires A-portlet et B-portlet).

    Le soucis que j'ai concerne le fameux objet Z qui doit être utilisé par A et B : je ne sais pas où je dois placer les "ressources" communes, en l'occurence cette classe Z.java
    Lorsque via Eclipse je partage le projet avec A et B dans lequel se trouve la classe Z, les .class générés ne sont soit pas publiés sur le serveur, soit ils le sont mais le class loader n'est pas le même ou bien surtout il y a un problème de cast : le Z publié par A n'est pas exactement le même que celui reçu par B. Un copier/coller manuel de Z.class dans les "classes" de A et B ne fonctionne pas non plus. La seule technique que j'ai trouvé est de créer un jar pour Z et de le placer dans les ressources communes directement sur Tomcat, et de redémarrer Tomcat pour pouvoir l'utiliser...

    Faut-il créer un fichier build.xml (pour le projet Z) et automatiser la création d'un jar pour générer Z, puis bidouiller le build.xml des deux portlets qui souhaitent l'utiliser ? modifier le fichier portal.dependency.jars ?

    Il y a sûrement plus simple mais comme je débute j'aimerais prendre les bonnes habitudes et ramer beaucoup moins.
    Après avoir cherché sur le web je commence à saturer un peu et n'avoir plus trop de recul sur ce que je fais

    Ah oui, j'oubliais : les <event-definition> sont donc configurés dans les fichiers "portlet.xml", le soucis ne vient pas de là. J'ai jeté un oeil à cette discusion - [LifeRay] Communication entre portlets mais cela elle ne résout pas ce type de problème.

    Toute explication est la bienvenue. Merci d'avance

  2. #2
    Candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    pour partager un objet entre plusieurs portlet, une idée consiste à compiler les class que vous voulez partager dans un projet à part et les mettre dans un fichier jar, par la suite mettre ce jar dans le dossier lib de LifeRay, comme ça avec un simple import dans vos portlet vous pouvez utilisé vos class partout.

  3. #3
    Membre actif

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Points : 220
    Points
    220
    Par défaut
    De façon générale si tu veux partager tes lib entre portlet, il faut les packager en .jar.
    Ensuite tu les met dans le répertoire $tomcat/lib/ext (pour tomcat en exemple) pour les partager au niveau du serveur directement.
    Il ne te reste plus qu'à configurer ton build path sous eclipse pour la compilation.

    Autre solution, si ta lib existe déjà dans liferay, tu précise dans liferay-plugin-package.properties ce dont tu as besoin (parmis celles de ROOT/WEB-INF/lib) et liferay te les copiera automatiquement au déploiement dans le WEB-INF/lib de ton portlet.

Discussions similaires

  1. faire varier une distance entre deux objets
    Par Neuropsy dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/11/2009, 09h44
  2. Faire passer des items entre deux zones de listes
    Par ludobado dans le forum Access
    Réponses: 8
    Dernier message: 04/05/2006, 18h33
  3. Réponses: 5
    Dernier message: 17/08/2005, 12h40
  4. [Securité] Faire communiquer 2 serveurs entre eux
    Par Wookai dans le forum Hébergement
    Réponses: 2
    Dernier message: 10/08/2005, 00h13
  5. [langage] Passage d objet entre deux fichiers
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2005, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo