Pré-requis pour Erddap

Erddap est un servlet écrit en Java. Il nécessite donc le JRE JAVA et un serveur TOMCAT

attention Pour tomcat comme pour java, pour être en conformité avec le développement de Erddap, il est préférable de * maitriser les versions de tomcat et de java qu'on installe.

De ce fait, il est recommandé d'installer tomcat et java avec les .tar.gz * fournis sur leur site de téléchargement, plutot que avec les paquets d'une distribution Linux.

Télécharger et Installer java

attention1 à partir de Erddap v2.20, il FAUT obligatoirement tomcat10 et java17 pour que Erddap fonctionne

attention2 si vous installez les paquets Debian11 de tomcat openjdk-11-jre-headless est automatiquement installé... et ne marchera pas avec Erddap !.

  • Il faut donc être attentif à la versionde java qui tourne sur votre systeme

  • il FAUT récupérer la dernière version de Java17 OBLIGATOIREMENT sur le site de Adoptium ici

  • Extraire le paquet OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz dans dans /opt (ou ca vous chante)

    cd /opt
    tar zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8.tar.gz
    
  • Créer un lien symbolique

    $ ln -s /opt/OpenJDK17U-jdk_x64_linux_hotspot_17.0.5_8   /opt/java
    

bien rajouter le path de JAVA dans le $PATH du systeme

    export PATH=/opt/java/bin:$PATH

    echo $PATH
    /opt/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Veillez à ce que ca soit bien java17 qui soit dans votre $PATH

  • testez avec java -version # java -version
    openjdk version "17.0.5" 2022-10-18
    OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)
    OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (build 17.0.5+8, mixed  mode, sharing)
    

Télécharger et Installer tomcat

attention A partir de la version 2.20 Erddap fonctionne uniquement avec les version tomcat10

  • Récupérer la dernière version de tomcat10 https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz :

    $ sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
    
  • Créer un user tomcat

    $ adduser tomcat
    $ su - tomcat
    (mot de passe jres22 dans la VM fournie)
    
  • puis, l’installer dans /opt/tomcat

    $ cd /opt
    $ sudo tar zxvf apache-tomcat-10.0.27.tar.gz
    
  • créer un lien symbolique "tomcat" sur le répertoire de tomcat

     $ ln -s /opt/apache-tomcat-10.0.27    /opt/tomcat/
    
  • Toute la hiérarchie de fichier doit appartenir au user tomcat

    $ chown -R tomcat:tomcat /opt/tomcat
    
  • Pour le user tomcat, ne pas oublier de mofidier la variable PATH pour rajouter le PATH vers java en premier dans le PATH

    $ export PATH=/opt/java/bin:$PATH
    

NB : ne pas oublier d'initialiser les variables d'environnement de JAVA et TOMCAT ci dessous, lors de chaque lancement de tomcat et de erddap

  • dans /etc/bash.bashrc par exemple
    export JAVA_HOME=/opt/java
    export JRE_HOME=/opt/java
    export JAVA_OPTS='-server -Djava.awt.headless=true -Xmx1500M -Xms1500M'
    export TOMCAT_HOME=/opt/tomcat/
    export CATALINA_HOME=/opt/tomcat
    

Lancement/Arret du serveur tomcat …

  • le lancer

    $ cd ~tomcat
    $ ./bin/startup.sh
    
  • ou l’arreter

    $ ./bin/shutdown.sh
    
  • vérifiez si le serveur tomcat est bien lancé sur le port par défaut 8080

    sudo apt-get install lsof
    sudo lsof -i:8080
    
  • tester avec un navigateur si le serveur tomcat est lancé… par défaut tomcat est lancé sur le port 8080

    http://localhost:8080
    

Configuration de tomcat

Pour les TP on restera sur le port 8080 par défaut

Si vous voulez faire écouter le serveur sur le port standard 80 (pas nécessaire dans ce TP), il vous faudra modifier le fichier /opt/tomcat/conf/server.xml

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

pour autoriser l’accès à l’URL de management http://localhost:8080/manager/html Il faut rajouter un utilisateur pour un certain rôle dans le fichier ~/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<user username="tomcat" password="jres22" roles="manager-gui"/>

Si vous souhaitez accéder à l'interface de management en dehors de la VM elle même, il vous faudra également ajouter les adresses IP autorisées dans le fichier ./webapps/manager/META-INF/context.xml (ce n'est pas nécessaire pour le TP, mais ça peut vous servir...:-)

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|139.124.2.128" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="139\.124\.2\.\d+|::1|0::0:0:0:0:0:0:1" />
</Context>

Conclusion - VM erddap

Pour le tutorial ERDDAP, on vous met à disposition une VM virtualBox avec Debian11 sur l'espace ici : - https://nuage.osupytheas.fr/s/Brm3Tw6Bja5ZkJK

    - compte root / jres22
    - compte utilisateur jres22 /jres22
    - compte tomcat / jres22
  • Tomcat9 et Java8 sont pré-installés dans le répertoire /opt

  • le TP tutorial commence dans le chapitre suivant avec l'installation de Erddap