Déploiement

Cette partie décrira le déploiement du portal en utilisant le couple Tomcat /MySQL dans l'optique de profiter pleinement de l'environnement de développement fournit par Liferay. En effet, bien qu'à posteriori bien pensé et trés flexible, le principe de fonctionnement est aussi complexe et difficile à prendre en main. Rassurez-vous, une fois le principe compris, les choses paraissent beaucoup plus claires.

Prérequis

Pour suivre le tutorial, il est nécessaire d'avoir :

  • une base de données MySQL fonctionnelle.
  • le J2SE SDK 1.4 installé.
  • installer Ant
  • une bonne bande passante. Au final vous devriez avoir à télécharger un peu plus de 100mo.

Tomcat sera téléchargé directement par Liferay.

Téléchargement

Pour commencer nous allons directement télécharger les sources du portail. Rendez vous à l'adresse suivante et téléchargez Liferay Portal 3.6.1 Source (3.6.1 étant la dernière version au moment de la rédaction de l'article). Décompressez ensuite l'archive dans un répertoire de votre choix.

unzip liferay-portal-ent-3.6.1-src.zip

Vous devez maintenant avoir un répertoire portal contenant les sources de Liferay Portal.

Configuration

L'environnement de développement sera crée à partir des sources du portail. Mais avant tout, il est nécessaire de procèder à quelques configurations.

Dans le répertoire portal de l'application se trouve 2 fichiers de configuration importants : release.properties et build.properties. Ces fichiers ne doivent pas être modifiés directement. Faîtes des copies de ces fichiers et renommez les respectivement release.${user.name}.properties et build.${user.name}.properties ou ${user.name} correspond à l'identifiant de l'utilisateur - niveau système d'exploitation - courant.

Éditez le fichier build.${user.name}.properties et assurez vous d'avoir les valeurs suivantes :

javac.compiler=modern

javac.fork=true

javac.compiler
correspond au compilateur utilisé lors du processus de build. Par défaut utilise jikes. Il s'agit d'un compilateur Java plus performant. Pour éviter de l'installer on utilise le compilateur modern qui correspond à celui du SDK 1.4.
javac.fork
précise si la compilation doit être lancer dans la même JVM ou dans une autre. Avec la valeur false j'ai eu souvent des exceptions du type java.lang.OutOfMemoryException. Préférez true dans ce cas.

Pour avoir plus d'informations au sujet de ces valeurs vous pouvez vous reportez à la page concernant la tâche Javac de Ant : http://ant.apache.org/manual/CoreTasks/j(..).

Ensuite vous devez initialiser les valeurs suivantes du fichier release.${user.name}.properties :

lp.eclipse.dir

lp.ext.dir lp.source.dir

lp.eclipse.dir
correspond au chemin complet de votre workspace eclipse. Pas nécessaire mais intéressant si vous utilisez Eclipse .
lp.ext.dir
est le chemin complet où vous désirez avoir votre répertoire d'extensions.
lp.source.dir
est le chemin complet du répertoire des sources de Liferay, c'est à dire le répertoire courant.

Pour ma part je vous conseille les valeurs ci-dessous :

lp.eclipse.dir=/path/to/eclipse

lp.ext.dir=/path/to/eclipse/ext lp.source.dir=/path/to/eclipse/portal

/path/to/ est le chemin complet pour votre répertoire de travail.

Dans la suite de l'article je ferai référence aux répertoire extensions et source respectivement via ${lp.ext.dir} et ${lp.source.dir}.

Création de l'environnement de développement

Il ne nous reste plus qu'à lancer les tâches de compiler par l'intermédiare de Ant.

ant start build-ext

Une fois la tâche terminée, vous devriez avoir le répertoire d'extension crée à l'emplacement spécifié par lp.ext.dir.

Eclipse

Si vous utilisez Eclipse, lancez aussi la tâche :

ant build-eclipse

La tâche créera le workspace Eclipse avec la configuration correspondante. Vous pouvez maintenant lancer Eclipse en spécifiant comme workspace la valeur de la propriété lp.eclipse.dir.

Téléchargement de Tomcat

Placez vous dans le répertoire ${lp.ext.dir}/servers qui vient d'être crée et lancez la commande suivante

ant install-tomcat

Cette tâche va télécharger un Tomcat préconfiguré pour Liferay et le décompresser dans le répertoire ${lp.ext.dir}/servers/tomcat. Il est évidemment possible d'utiliser un Tomcat qui serait déjà installé sur votre machine. Cela demande une étape de configuration supplémentaire qui ne sera pas décrite ici. Vous pouvez trouver des informations à ce sujet sur le site de Liferay .

Si vous n'êtes pas administrateur de la machine sur laquelle vous travaillez, Tomcat refusera de se lancer car par défaut il se lance sur le port 80. Pour éviter ce désagrément, éditez cette partie du fichier ${lp.ext.dir}/servers/tomcat/conf/server.xml

...
    <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" />

...

et remplacez de l'attribut port par la valeur choisie (ici 8080).

Configuration de la base de données

Comme dis précédemment, MySQL sera utilisé pour la partie base de données. Il faut bien entendu passer par une étape de configuration.

  • Démarrez votre serveur de base de données MySQL.
  • Placez vous dans la répertoire ${lp.ext.dir}/sql/portal.
  • Créez une base de donnée lportal.
  • Lancez le script de création des tables.
mysql -u <user> lportal < portal-mysql.sql

Liferay se voulant indépendant du SGBD , nous avons besoin du driver JDBC pour MySQL. Fort heureusement Liferay est livré avec la plupart des librairies nécessaires dont celle de MySQL. Ces librairies se trouvent dans le répertoire ${lp.ext.dir}/lib.

Pour utiliser le driver MySQL copier le fichier ${lp.ext.dir}/lib/mysql.jar vers ${lp.ext.dir}/ext-lib/. À ce stade, je vous demande de faire cette manipulation sans vraiment comprendre ces implications. Le fonctionnement du répertoire d'extensions sera expliqué en détails plus tard.

Enfin, il est nécessaire de configurer le pool de connexions de Tomcat pour utiliser MySQL. Pour cela, éditez le fichier ${lp.ext.dir}/servers/tomcat/conf/Catalina/localhost/liferay.xml et configurez comme suit :

...
	<ResourceParams name="jdbc/LiferayPool">
		<parameter>
			<name>driverClassName</name>
			<value>com.mysql.jdbc.Driver</value>
		</parameter>
		<parameter>
			<name>url</name>
			<value>jdbc:mysql://localhost/lportal</value>
		</parameter>
		<parameter>
			<name>username</name>
			<value>root</value>
		</parameter>
		<parameter>
			<name>password</name>
			<value></value>
		</parameter>
		<parameter> 
			<name>maxActive</name> 
			<value>20</value> 
		</parameter>
	</ResourceParams>

...

En s'assurant d'avoir les bonnes valeurs pour les paramètres username et password.

Deploiement et lancement du portail

La fin est proche! Vous aurez bientôt votre portail Liferay fonctionnel.

Placez vous dans le répertoire ${lp.ext.dir}. Comme précédemment dans le répertoire ${lp.source.dir}, vous devez faire des copies app.server.properties et build.properties et les nommer respectivement app.server.${user.name}.properties et build.${user.name}.properties. Éditez le fichier app.server.${user.name}.properties comme suit pour spécifier que vous utilisez Tomcat.

...
#app.server.type=jboss-jetty
#app.server.type=jboss-tomcat
#app.server.type=jetty
#app.server.type=jrun
#app.server.type=oc4j
#app.server.type=orion
#app.server.type=pramati
#app.server.type=resin
#app.server.type=rexip
#app.server.type=sun

app.server.type=tomcat

#app.server.type=weblogic #app.server.type=websphere

...

La dernière ligne est la correction d'un bug.

Vous pouvez maintenant déployer le portail à partir de l'environnement d'extensions avec la commande

ant deploy

Placez vous maintenant dans le répertoire ${lp.ext.dir}/servers/tomcat/bin et lancez les commandes suivantes :

chmod +x *.sh

./startup.sh

si vous êtes sous Unix ou

startup.bat

sous environnement Windows.

Le démarrage est relativement long. Sous Unix attendez vous à avoir des erreurs du type

Cannot create directory: /home/liferay/lucene/liferay.com

si vous n'êtes pas administrateur de la machine lorsque vous lancez Liferay. Il s'agit du répertoire où Lucene écrit ses index. Nous verrons plus tard comment modifier cette valeur.

Vous pouvez maintenant ouvrir votre navigateur Web à l'adresse http://localhost ou http://localhost:8080 en fonction du port que vous avez préciser dans le fichier server.xml. Connectez vous avec l'utilisateur test@liferay.com:test qui dispose par défaut des droits administrateurs.

Comments

Problème de déploiement

Bonjour, J'ai suivi le tuto à la lettre mais j'obtiens l'erreur suivante lorsque je lance tomcat : Etat HTTP 500 - type Rapport d'exception message description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te. exception java.lang.ArrayIndexOutOfBoundsException: 0 com.liferay.portal.util.PortalInstances._getDefaultCompanyId(PortalInstances.java:217) com.liferay.portal.util.PortalInstances._getCompanyId(PortalInstances.java:171) com.liferay.portal.util.PortalInstances.getCompanyId(PortalInstances.java:72) com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:114) com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:98) com.liferay.portal.servlet.filters.sessionid.SessionIdFilter.doFilter(SessionIdFilter.java:81) note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.18. Pouvez-vous m'apporter de l'aide svp?? Merci énormément!!

Excellent article

merci!

Post new comment

The content of this field is kept private and will not be shown publicly.