Implémentation de gestionnaires utilisateur pour les applications JAX-RS
Vous pouvez développer des gestionnaires utilisateur pour personnaliser le comportement d'une chaîne de gestionnaires et ajouter une fonctionnalité unique au gestionnaire. En implémentant des gestionnaires utilisateur sur les serveur des applications Java™ API for RESTful Web Services (JAX-RS), vous améliorez le traitement des demandes et des réponses.
Pourquoi et quand exécuter cette tâche
Vous pouvez ajouter des gestionnaires utilisateur personnalisés sur le serveur aux chaînes de demande, de réponse, et d'erreur. Si un traitement supplémentaire est nécessaire, tel que consigner chaque demande client, l'ajout de gestionnaires utilisateur permet d'implémenter la fonctionnalité de consignation.
En règle générale, un gestionnaire reçoit une instance MessageContext pour accéder aux informations de demande en cours et les manipuler et une instance HandlerChain pour transmettre la chaîne. Pour transmettre le contrôle d'un gestionnaire à un autre dans la chaîne de gestionnaires, le gestionnaire doit appeler la méthode doChain() dans l'instance HandlerChain. Etant donné qu'un gestionnaire peut appeler plusieurs fois la méthode doChain(), vous devez tenir compte du fait que le gestionnaire peut être appelé plusieurs fois pour une même demande. Toutes les interfaces de gestionnaires résident dans le package org.apache.wink.server.handlers.
Les gestionnaires utilisent l'interface MessageContext pour accéder aux information de demande en cours et les manipuler. Cette interface permet aux gestionnaires de conserver l'état d'un message en définissant des attributs dans le contexte du message. Vous pouvez également utiliser cette interface pour envoyer des informations aux autres gestionnaires de la chaîne.
La chaîne de gestionnaires de demande traite une demande en fonction de la spécification JAX-RS en acceptant, recherchant la méthode de ressource à appeler, désérialisant l'entité de demande et en appelant la méthode de ressource. Un gestionnaire de demande est une classe qui implémente l'interface org.apache.wink.server.handlers.RequestHandler.
La chaîne de gestionnaires de réponse traite l'objet retourné en appelant une méthode de ressource ou une méthode de sous-ressource en fonction de la spécification JAX-RS. Il détermine le code d'état de réponse en sélectionnant le type de support de réponse et sérialise l'entité de réponse. Un gestionnaire de réponse est une classe qui implémente l'interface org.apache.wink.server.handlers.ResponseHandler.
Un gestionnaire utilisateur doit implémenter l'interface org.apache.wink.server.handlers.RequestHandler ou org.apache.wink.server.handlers.ResponseHandler. Vous devez créer une classe qui étend l'interface org.apache.wink.server.handlers.HandlersFactory pour retourner la réponse ou le gestionnaire de réponse. Enfin, vous devez définir l'emplacement du fichier des propriétés, contenant le nom de classe HandlersFactory, sous la forme d'un paramètre d'initialisation dans le fichier web.xml pour que le fichier des propriétés soit lu par le servlet ou le filtre.
Procédure
Résultats
Vous avez ajouté un gestionnaire utilisateur à la chaîne de gestionnaires sur le serveur de l'application JAX-RS pour ques ces gestionnaires personnalisés soient appelés lors de chaque traitement de demande ou de réponse.