Introduction
AVANT Undertow
— > conteneur web Jboss AS = Jboss Web = fork de Tomcat
Contexte et enjeux
Besoins
1) serveur conforme aux Specs Java EE 7 –> Http Upgrade : un client a besoin de passer d’une communication HTTP ‘traditionnelle’ à une communication type WebSocket ou HTTPS ou HTTP2
2) serveur léger, flexible et avec meilleure performances
Résultat
UNDERTOW : peut scaler à des millions de connections, excellent temps de réponse
UNDERTOW basé sur l’API NIO Java
UNDERTOW est flexible : grâce au chaînage des handlers, undertow peut aussi bien être un serveur web http qu’un conteneur EJB 3.2
Architecture
Undertow = listeners + handlers + Filters + workers +
Configuration
subsystem ‘undertow’ (listeners, handlers) couplé (pour worker) au subsysem ‘io’
dans le fichier standalone.xml, la majorité de la configuration est géree dans 2 balises : ‘server’ et ‘servlet-container’
TP1 : Mise en oeuvre de filtres
TP 1 –> Ajouter un header « Societe » ayant pour valeur « Pierre et Vacances » dans toute réponse HTTP du serveur Undertow
2 étapes :
Etape 1 (dans section ‘filters’)
Ajouter :
‘response-header name= »societe-header » header-name= »Societe » header-value= »Pierre et Vacances »/’
Etape 2 (dans ‘host’)
Ajouter :
‘filter-ref name= »societe-header »/’
Démarrez le serveur (ou ‘reload’ avec le CLI)
Accédez à la page d’accueil
Analysez les en-têtes de la réponse serveur
Expliquez
TP2 : Ajouter un log d’accès
dans section ‘host’ , ajouter
‘access-log directory= »$jboss.server.log.dir » pattern= »common » prefix= »access_log » rotate= »true » suffix= ».log » worker= »default »/’
Expliquez
TP3 : Hote virtuel
Configurez Undertow afin être capable de répondre à requête http://asterix:8080 en arrivant sur une page d’accueil différente de la page d’accueil par défaut de Wildfly
EXEMPLE CONFIG
(éléments de correction TPs 1, 2, 3
TP4 : Filtre d’erreur
CLI
/subsystem=undertow/server=default-server/host=default-host/filter-ref=404handler/:add(predicate=true)
/subsystem=undertow/configuration=filter/error-page=404handler/:add(code=404,path=/var/docs/www/error.html)
TP5 : Statistiques d’une application
3 étapes :
1) activer les statistiques dans undertow
/subsystem=undertow/:write-attribute(name=statistics-enabled,value=true)
2) recharger le serveur (‘reload’ via CLI)
reload
3) obtenir statistiques d’une application (ex : monappli.war)
/deployment=monappli.war/subsystem=undertow/:read-resource(includeruntime=true)