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
Partager