Installation Esup Helpdesk

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
smtp.host=smtp.univ.fr
smtp.user=
smtp.password=
smtp.fromEmail=ent@univ.fr
smtp.fromName=ESUP-Portail Helpdesk
smtp.interceptBean=smtpIntercept       mettre 'null' en prod !
smtp.interceptAll=true       mettre 'false' en prod !
smtp.interceptEmail=ent-support@univ.fr
smtp.interceptName=ENT
smtp.testEmail=ent-support@univ.fr
smtp.testName=ENT
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
log.level=WARN
log.output=stdout
log.pattern=%d %p [%c] - %m%n
log.file=esup-helpdesk.log
exceptionHandling.email=ent-support@univ.fr
exceptionHandling.doNotSendExceptionReportsToDevelopers=true
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