Dépoiement du WAR d'Alfresco sous Spring DM Server

jeudi 30 avril 2009

Alfresco est un projet de gestion de contenu d'entreprise (Donc aussi bien orienté Gestion Electronique de Documents que Gestion de Contenu Web) créé en juin 2005 par John Newton, co-fondateur de Documentum et John Powell, ancien cadre de Business Objects, apportant ainsi une grande expérience des besoins (15 ans d'expertise dans le domaine).

La mission d’Alfresco est d’ouvrir le monde de la Gestion Documentaire à travers l’open source afin d’augmenter les innovations grâce à la participation de la communauté et le libre accès au code source, et vise à fournir une application complète à moindre coût, et avec plus d'agilité.

Alfresco est un projet open-source, multi plateforme, utilisant des standards ouverts, et massivement basé sur la technologie JEE.

Alfresco a développé une architecture moderne qui utilise les derniers outils open-source pour optimiser les performances, et la Programmation Orienté Aspect (AOP) facilitant ainsi la modularité et l’adaptabilité de l’application.

Alfresco implémente la norme JSR-168 pour le déploiement dans des portails open-source tel que JBOSS Portal ou Liferay

Alfresco permet de gérer les documents électroniques au sein d’une entreprise et fournit des services de recherche et de catégorisation du contenu.

Alfresco fournit une interface d’accès aux données stockées sur des lecteurs réseaux partagés avec des règles automatiques afin de simplifier la catégorisation et l’organisation, la recherche, et le partage pour augmenter la conformité des process à travers un véritable contrôle documentaire. (source)


SpringSource dm Server ™ est complètement modulaire, basé sur un serveur OSGi Java, il est conçu pour fonctionner des applications Java d'entreprise et les applications Spring avec un nouveau degré de flexibilité et de fiabilité. SpringSource dm Server est basé sur le nouveau noyau SpringSource Dynamic Module Kernel™ (dm Kernel). Ce nouveau noyau offre un module de base pour le serveur, qui exploite la puissance de Spring, Apache Tomcat et OSGi-based technologies. (source)


En ce qui concerne le déploiement du WAR d'Alfresco sur ce fameux serveur, Le WAR proposé sur le site d'Alfresco n'est pas du tout déployable sur Spring DM Server (il ne peut être déployé que sur Apache Tomcat), surtout qu'il utilise des dépendances à mettre dans differents fichiers dans le serveur Apache Tomcat (dossiers shared et common\endorsed) et qui n'existent malheureusement pas dans Spring DM Server,

Pour résoudre le problème il nous faudrait un WAR complet et qui contient toutes les dépendances nécessaires au bon fonctionnement d'Alfresco,

Pour ce faire, il nous faudra construire un nouveau WAR à partir du code source d'Alfresco, -> l'open source c'est cooooool

étape 1 : Construction du workspace et génération du WAR

1- faites un checkout complet du code source d'Alfresco en utilisant un outil (comme SmartSVN)
Remarque : c'est mieux de ne pas utiliser SubEclipse, ca peut vous ralentir

2- suivez les étapes fournies par le lien suivant sur le wiki d'Alfresco : http://wiki.alfresco.com/wiki/Alfresco_on_Eclipse, seul changement c'est le checkout dans un dossier externe,

3- l'importation des projets dans le workspace devra être faites dans l'odre suivant :
  • 3rd-party
  • core
  • MBean
  • Deployment
  • Alfresco JLAN
  • repository
  • remote-api
  • web-service-client
  • jndi-client
  • web-client
  • webscript-framework
  • Installer
  • lang-packs
  • Extensions
  • Netbios
  • SDK : il contient plusieurs porjets, il faudrait tous les importer
  • link-validation
  • Catalina-virtual
  • Webservice-Client

Aprés l'importation des projets dans l'ordre précedent, le workspace devrai être compilé, (une erreur de compilation pourrait survenir dans le projet repository, mais elle n'aura aucune concéquence sur la suite), votre workspace devra ressembler à cela :


4- créez un nouveau projet sous eclipse (un simple projet), nommez le ANT (par exemple) et importez le fichier root/build.xml (il devrait être dans le checkout que vous avez effectué)

5- en utilisant l'outil "External tools", créez une configuration pour "Ant Build",


attribuez lui un nom, et cliquez sur "Browse Workspace" de la partie "Buildfile" et sélectionnez le fichier "build.xml",


6- cliquez sur "run", un long processus pour la compilation "Ant" sera effectué, à la fin un fichier WAR est généré, vous pouvez le récupéré dans le chemin spécifié dans la trace, où en allant directement vers le fichier C:\Tomcat\webapps


étape 2 : déployement du WAR sous Spring DM Server

1- mettez le WAR d'Alfresco (celui généré dans l'étape précédente) dans le dossier "pickup" du serveur Spring DM,

2- avant de lancer le serveur Spring DM, il faut vérifier les choses suivantes :

a- la base de données "Alfresco" est créée (voir le script de génération de la BD dans le lien http://wiki.alfresco.com/wiki/Alfresco_on_Eclipse),

b- il faudrait auguementer la taille de la mémoire allouée à la JVM pour Spring DM Server -> Alfresco est très gourmant,

  • si vous voulez lancer Spring DM Server depuis la console, ouvrez le fichier startup.bat pour windows (resp. startup.sh pour linux) et ajoutez "-Xms256m -Xmx512m -XX:MaxPermSize=128m" dans la variable "JAVA_OPTS"
  • si vous voulez lancer Spring DM Server depuis Eclipse, allez à la configuration de lancement du serveur (double-clic sur le serveur + open lunch configuration) et ajoutez les même données dans la zone "VM Arguments" de l'onglet "Arguments"


3- Lancez votre serveur, attendez que le WAR soit déployé et ouvrez votre browser pour tester Alfresco (http://localhost:8080/alfresco)

0 commentaires: