Installer XWiki sur Glassfish 3.1

C’est le buzz du moment : Glassfish 3.1 est disponible ! La plateforme était attendue depuis un petit moment déjà – au moins je l’attendais avec impatience ! Il apporte de nombreuses fonctionnalités parmi lesquelles la gestion en cluster et la fourniture de toute une palette d’outils et de services basés sur OSGi.

Malheureusement, il me faudra plusieurs mois pour comprendre et bénéficier l’ensemble des possibilités. Néanmoins, il me coûter de ne pas mettre en oeuvre cette nouvelle version dès que possible; c’est chose faite avec l’installation de XWiki sur la plateforme de référence de Java EE 6. Cet article reprend les étapes nécessaires à cette installation qui ne diffère pas vraiment de la documentation à ce sujet. Il semble que je sois vraiment à cours de sujets.

Créer une ressource JDBC

Pour commencer, il faut télécharger et installer Glassfish 3.1. Rien de bien sorcier; ça se termine ainsi :

cd glassfish/bin/
./asadmin start-domain
Waiting for domain1 to start ......................
Successfully started the domain : domain1
domain Location: /home/arkzoyd/glassfish/glassfish/domains/domain1
Log File: /home/arkzoyd/glassfish/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.

Une fois l’opération effectuée, j’ai installé les drivers JDBC de MySQL dans le répertoire glassfish/lib

cp mysql-connector-java-5.1.15-bin.jar $GLASSFISH_HOME/glassfish/lib/.

Il s’agit ensuite de configurer le serveur MySQL :

create database xwiki;
mysql -h localhost -u root -p
create user 'xwiki'@'localhost' identified by 'xwiki';
grant all privileges on xwiki.* TO 'xwiki'@'localhost'
with grant option;
flush privileges;

Une fois le driver installé et l’utilisateur et la base de données MySQL configuré, il suffit de créer le pool de connexions MySQL et la ressource associée :

cd $GLASSFISH_HOME/bin
./asadmin restart-domain
Successfully restarted the domain
Command restart-domain executed successfully.


./asadmin create-jdbc-connection-pool
--datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
--restype javax.sql.ConnectionPoolDataSource
--property "User=xwiki:Password=xwiki:URL=jdbc\:mysql\://localhost\:3306/xwiki"
jdbc/xwikipool
JDBC connection pool jdbc/xwikipool created successfully.
Command create-jdbc-connection-pool executed successfully.


./asadmin ping-connection-pool jdbc/xwikipool
Command ping-connection-pool executed successfully.

./asadmin --user=admin create-jdbc-resource
--connectionpoolid jdbc/xwikipool jdbc/xwiki
JDBC resource jdbc/xwiki created successfully.
Command create-jdbc-resource executed successfully.

La console Glassfish présente désormais le pool de conexions pour la base de données :

Déployer XWiki
Déployer XWiki consiste à déployer le fichier .war correspondant depuis la console par exemple :

Une fois l’application déployée avec le contexte racine nommé xwiki, on modifiera le fichier hibernate.cfg.xml en commentant la source de données par défaut et en « dé-« commentant la source de données MySQL ; pour cela, éditez le fichier :

cd $GLASSFISH_HOME/glassfish/domains/domain1/applications/xwiki
vi WEB-INF/hibernate.cfg.xml

Vous pourrez ensuite lancer XWiki :

Installer le wiki par défaut
Pour commencer avec XWiki, vous installerez le Wiki par défaut disponible sous forme d’un fichier .xar; Naviguer sur la page d’import de XWiki dont l’URL ressemble à celle ci : http://<servername>:<port>/xwiki/bin/import/XWiki/XWikiPreferences puis chargez le fichier .xar :

Une fois le chargé, vous pouvez l’importer dans la configuration en cliquant sur le bouton « Import » :

Un utilisateur admin dont le mot de passe par défaut est admin est créé lors de l’import ; connectez-vous pour utiliser XWiki comme ci-dessous :

Pour la petite histoire, certes, XWiki est un open source java, disponible en LGPL et fonctionne sur Glassfish 3.1 mais c’est aussi une magnifique plateforme d’integration pour vos développements et ça, c’est juste idéal !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *