Nous allons installer Esup Helpdesk [3.23.2] en tant que portlet qui sera éxécutée dans esup portail.
Activer les web services de uPortal
Modifier ~/esup/default/config.properties :
esup.ws.groups=true
cd ~/esup/default
ant init
ant deploy
Création de la base de données
Créez une base de données helpdesk associée à un utilisateur helpdesk (phpMyAdmin, ou mysql).
Création des répertoires
mkdir -p ~/helpdesk/files #va contenir les fichiers uploadés par les utilisateurs
mkdir -p ~/helpdesk/index #va contenir les fichiers relatifs à l'indexation
mkdir -p ~/helpdesk/src #c'est ici que nous allons décompresser les archives
Décompression de l'archive
cd ~/helpdesk/src
unzip -q ~/downloads/$archive
Paramétrage et tests
Modifiez les fichiers de configuration :
$target/build.properties
deploy.type=portlet
deploy.home=/home/ent/esup/default/Portail/webapps/esup-helpdesk
tomcat.port=8080
tomcat.host=nom_du_serveur
$target/properties/config.properties
hibernate.connection.jdbc.url=jdbc:mysql://localhost/helpdesk
hibernate.connection.jdbc.username=helpdesk
hibernate.connection.jdbc.password=mot de passe
hibernate.connection.jndi.datasource=jdbc/esup-helpdesk
cas.url=https://cas.univ.fr
init.firstAdministratorId=gasnier
ldap.url=ldap://ldap.univ.fr:389
ldap.userName=
ldap.password=
ldap.base=dc=univ,dc=fr
ldap.dnSubPath=ou=people
ldap.uidAttribute=uid
ldap.displayNameAttribute=displayName
ldap.emailAttribute=mail
ldap.searchAttribute=cn
ldap.attributes=cn,displayName,employeeType,department,homeDirectory
ldap.searchDisplayedAttributes=cn,displayName,employeeType,department
ldap.testFilter=cn=*gasnier*
userInfo.testUserId=gasnier
portal.webServiceUrl=http://serveur.univ.fr/uPortal/services/UportalService
portal.testUser=gasnier
portal.testGroupId=local.0
portal.testGroupName=Etudiants
uploadedFiles.path=/home/ent/helpdesk/files
uploadedFiles.v2Path=/home/ent/helpdesk/v2Files
indexing.path=/home/ent/helpdesk/index
indexing.testUserId=gasnier
#urlGeneration.bean=servletUrlGenerator
urlGeneration.bean=uportalUrlGenerator
urlGeneration.casLoginUrl=https://cas.univ.fr/login?service=%s
urlGeneration.uportalFunctionnalName=esup-helpdesk
urlGeneration.uportalLoginUrl=http://serveur.univ.fr/uPortal/Login
urlGeneration.uportalGuestUrl=http://serveur.univ.fr/uPortal/Guest
webService.authorizedClientNames=serveur.univ.fr,localhost
lock.path=/tmp
timezone=Europe/Paris
defaultLocale=fr
encoding=ISO-8859-1
$target/properties/i18n/bundles/Custom_fr.properties
WINDOW.TITLE
Tests et initialisation
cd ~/helpdesk/src/$version
ant test-database
ant test-ldap
ant test-portal
ant test-smtp
ant init-data
ant test-user-info
Déploiement [en cas de problèmes, cf problèmes plus bas...]
ant deploy
Ajoutez le contexte suivant dans ~/tomcat/default/conf/server.xml (avant la fin de <Host>) :
<Context path="/esup-helpdesk" docBase="/home/ent/esup/default/Portail/webapps/esup-helpdesk" crossContext="true" reloadable="true">
<Resource
name="jdbc/esup-helpdesk"
auth="Container"
type="javax.sql.DataSource"
username="helpdesk" password="mot de passe"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/helpdesk"
poolPreparedStatements="true"
validationQuery = "select 1"
maxActive="100" maxIdle="30" maxWait="10000"
removeAbandoned="true"
removeAbandonedTimeout="300"
logAbandoned="true" />
<Manager pathname="" />
</Context>
Modifier la configuration de tomcat
Afin que le téléchargement de fichier fonctionne, la configuration du connecteur tomcat doit être modifiée. Vous devez ajouter emptySessionPath="true" au connecteur utilisé [pour nous AJP : 8009, mais vous devez aussi modifier le connecteur 8080 si vous l'utilisez]
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" emptySessionPath="true" />
Redémarrer esup
Publier le canal
Pour publier le canal dans esup, vous pouvez soit utiliser le gestionnaire de canaux soit déployer à l'aide du fichier esup-helpdesk-portlet-chanpub.xml fourni dans $target/utils/uPortal/
Voici les paramètres du canal :
Channel Type: Portlet
Channel Title: Bureau d'assitance
Channel Name: Bureau d'assistance
Channel Functional Name: esup-helpdesk
Channel Description: Système de Suivi des Demandes
Channel Timeout: 50000 milliseconds
Channel Secure: Not Secure
Portlet definition ID: esup-helpdesk.esup-helpdesk
Selected Categories: Outils de communication
Selected Groups and/or People: Tous les groupes de personnes
Pour déployer à partir du fichier :
cp $chanFile ~/esup/default/Portail/uPortal/properties/chanpub/
cd ~/esup/default
ant chan.pub -Dchannel=$chanFile
Problèmes rencontrés
NullPointerException
La plupart du temps, ceci est dû à un problème de timeout. Si vous rencontrez cette erreur lors du chargement de la portlet, n'hésitez pas à augmenter le timeout dans les paramètres du canal !
Unable to find portlet definition for ID CONTEXT_NAME.PORTLET_NAME
-L'application doit être déployée à coté de uPortal : à savoir dans ~/esup/default/Portail/webapps/
-L'application doit être déployée dans le contexte tomcat CONTEXT_NAME
-Le fichier ~/esup/default/Portail/webapps/esup-helpdesk/WEB-INF/web.xml doit contenir :
<servlet>
...
<init-param>
<param-name>portlet-guid</param-name>
<param-value>CONTEXT_NAME.PORTLET_NAME</param-value>
</init-param>
-Le fichier ~/esup/default/Portail/webapps/esup-helpdesk/WEB-INF/portlet.xml doit contenir :
<portlet-name>PORTLET_NAME</portlet-name>
Erreurs javascripts, images absentes
/esup-helpdesk/media/ doit être accessible
Pour cela, on ajoute un ProxyPass dans la configuration apache de l'ent
<VirtualHost *:80>
ProxyPass /esup-helpdesk ajp://localhost:8009/esup-helpdesk
ProxyPassReverse /esup-helpdesk ajp://localhost:8009/esup-helpdesk
</VirtualHost>
CommunicationsException
Il faut ajouter une validationQuery dans la ressource jdbc/PortalDb du contexte tomcat - le contexte décrit plus haut inclut la validationQuery.
DownloadException
Lorsque vous attachez un fichier à un ticket, si vous souhaitez le télécharger par la suite, l'erreur suivante peut apparaitre : DownloadException: data is null, can not download
Il faut ajouter une emptySessionPath="true" dans le Connecteur tomcat. Le connecteur que nous utilisons pour accéder à helpdesk est le connecteur AJP, il faut donc modifier ce connecteur. [Vous devez aussi modifier le connecteur 8080 si vous l'utilisez]
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" emptySessionPath="true" />
Programming error : NullPointerException
Vous obtenez cette erreur si vous avez oublié de définir un functional name à votre canal.
Problèmes d'affichage CSS
Il faut créer un skin et ajouter les fichiers css de helpdesk.
Si vous n'avez pas encore de skin dans votre dossier custom, vous pouvez copier les fichiers à partir de ~/esup/Portail/webapps/uPortal/media/org/jasig/portal/layout/tab-column/xhtml-theme/
cd ~/esup/custom/uPortal/webpages/media/org/jasig/portal/layout/tab-column/xhtml-theme/
Ajouter univ dans skinList.xml
cp -r esup univ
cd univ/skin/
mv esup.css univ.css
ln -s ~/esup/default/Portail/webapps/esup-helpdesk/media/ helpdesk-media
Ajouter dans univ.css :
@import url("helpdesk-media/portlet.css");
@import url("helpdesk-media/commons.css");
@import url("helpdesk-media/helpdesk.css");
Valider les changements
cd ~/esup/default
ant init
ant deploy
Pour modifier le skin par défaut :
http://www.esup-portail.org/display/ESUPMU/02+-+Personnalisations+de+look
Accueil esup-portail