Google

 

java.net

 

Empowered by NetBeans

 

 

outil de gestion et de suivi de projets

Installation de jprojet


Prérequis

PostgreSQL doit être installé et configué pour recevoir des connexions TCP depuis le serveur d'applications où jprojet doit être installé la partie web service et webdav.

jprojet a été testé sur une version 8.x de PosgreSQL.
En le téléchargement, vous avez le script d'initialisation de la base de données.

Vous devez avoir la machine virtuelle java 1.6 d'installée ou supérieure.

Le serveur d'application préconisé est Tomcat 5.5. Vous devez au préalable avoir fait l'installation de Tomcat.

 

Postgresql

Vous avez simplement à créer une base de données jprojet en UTF-8 puis à executer la commande suivante :

pg_restore -v -x -O -d jprojet -Ft jprojet-dist.tar

 

Déploiment du serveur

Dans le répertoire webapps de Tomcat copiez le fichier jprojet-2.war. Tomcat déploiera automatiquement la partie serveur.

 

Configurer Tomcat

 

Configurer un pool de connexion sur Tomcat

L'utilisation de TopLink, impose la création d'un pool de connexions sur Tomcat.

La configuration pour l'utilisation du pool de connexion se fait en deux endroits :

  • dans le fichier web.xml du contexte
  • dans le fichier server.xml du répertoire conf de Tomcat

Le driver JDBC de Postgres doit être copié dans le répertoire "common/lib" pour Tomcat 5.5. Le driver se trouve dans "WEB-INF/lib/postgresql-8.1-407.jdbc3.jar", une fois le war déployé.

Fichier context.xml

Il s'agit ici de configurer la "resource factory" de Tomcat. Cette configuration peut aussi être faite dans le fichier META-INF\context.xml de l'archive war utilisée pour le déploiement de l'application web sur les versions 5.x de Tomcat.
J'ai repris ici toute la partie relative au contexte de l'application web TutoPool. Cette section est à placée avec les autres déclarations de contexte entre les balises <Host> du fichier server.xml.

<Context>
<Resource
name="jdbc/postgres"
auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/jprojet"
username="jprojet"
password="jprojet"
maxActive="20"
maxIdle="10"
maxWait="-1"/>
<ResourceLink global="jdbc/MyRealDS" name="jdbc/DefaultDS" type="javax.sql.DataSource"/>
</Context>

Fichier web.xml

Ce fichier est le descripteur de l'application web. On y déclare le nom JNDI (Java Naming and Directory Interface) sous lequel on cherchera l'objet DataSource. Par convention, ces noms suivent le sous-contexte jdbc (relatif au contexte de nommage standard java:comp/env qui est la racine de toutes les ressources fournies). Cette déclaration se fait après la section servlet-mapping.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
...
<resource-ref>
<description>PostgreSQL Datasource</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>


Paramétrage

Trois paramètres permettent d'influencer la gestion du nombre de connexions dans le pool :

  • maxActive : le nombre maximum de connexions qui peuvent être allouées depuis le pool. Sa valeur par défaut est 8, une valeur de 0 indique "sans limite". Il faut être sûr que la base de données autorisera ce nombre de connexions.
  • maxIdle : le nombre maximum de connexions inactives qui peuvent être dans le pool. Sa valeur par défaut est de 8, une valeur de 0 indique "sans limite".
  • maxWait : le temps d'attente maximum en millisecondes pour l'obtention d'une connexion. Passé ce délai, une exception est levée. Sa valeur par défaut est -1 qui correspond à un temps infini.

L'utilisation de JDBC pouvant vite devenir complexe, il arrive que l'on oublie de fermer une connexion. Cette connexion ne revient donc pas dans le pool, on parle alors de "fuite du pool de connexion" (pool leaking). Ce phénomène peut aboutir à un blocage de l'application web par manque de connexions disponibles. On peut configurer Tomcat pour qu'il récupère ces connexions et laisse une trace de la pile du code qui a ouvert la connexion et ne l'a jamais fermée. Par défaut cette fonction n'est pas activée. Si vous l'activez, Tomcat effectue cette recherche quand le nombre de connexions inactives (disponible dans le pool) est inférieur à 2. Les paramètres sont :

  • removeAbandoned : par défaut à false, c'est lui qui permet l'activation de cette fonction. Si on le met à true, une connexion est considérée comme abandonnée et éligible à la récupération si elle est inactive depuis plus longtemps que le removeAbandonedTimeout.
  • removeAbandonedTimeout : C'est le temps en secondes (par défaut 300), avant qu'une connexion inactive soit considérée comme abandonnée.
  • logAbandoned : par défaut à false. Si positionné à true, Tomcat ajoute une trace de la pile de l'application qui a abandonné la connexion.

 

Paramettres du ficher web.xml

  • dbpassword : mot de passe pour la base de données
  • dbuser : utilisateur pour la base de données
  • dburl : chemin d'accès au serveur de base de données
  • smtp : serveur smtp
  • liusConfig : chemin d'accès au fichier de configuration de Lius
  • log4j : chemin d'accès au fichier de configuration de Log4J
  • indexDir : répertoire servant pour le stockage des informations d'indexation de Lius
  • toIndex : répertoire servant à Lius pour indexer les documents

 

Fichier log4j.lcf

Le fichier se trouve dans WEB-INF/log4j.lcf. Modifier la ligne log4j.appender.rolling.File pour mettre le chemin de votre fichier de log.

Exemple :
log4j.appender.rolling.File=/home/www/jprojet2-webservices.log

 

Rechargez Tomcat.

 

Java Web start et client riche

Pour éxécuter jprojet en Java Web Start, vérifiez que dans le répertoire webapps\jprojet-2 vous avez les fichiers suivants :

  • activation.jnlp
  • help.jnlp
  • jdic.jnlp
  • jprojet.jnlp
  • lib.jnlp
  • index.jsp
  • logo.gif
  • splash.gif
  • webstart_small.gif
  • jprojet.properties
  • dist/jprojet_2_signed.jar
  • dist/lib/activation.jar
  • dist/lib/jhall.jar
  • dist/lib/jnlp.jar
  • dist/lib/libs-jprojet2_signed.jar
  • dist/lib/ws_signed.jar
  • WEB-INF/
  • META-INF/

Pour installer et éxécuter le client, allez sur la page de votre serveur, exemple : http://localhost:8080/jprojet-2/ puis cliquez sur l'icône "Launch".

Si votre installation est correcte, alors vous devez avoir la page suivante dans votre navigateur :

Installation

Java Web Start fera le reste, téléchargement, installation, éxécution.

 

Fichier jprojet.properties

A la racine de votre site, vous devez copier le fichier "jprojet.properties".
Indiquer l'url de jprojet, exemple :
urlServerWs = http://localhost:8080/jprojet-2/