Implementación de manejadores de usuario para aplicaciones de JAX-RS
Puede desarrollar manejadores de usuario para personalizar el comportamiento de una cadena de manejadores y para añadir la funcionalidad exclusiva para el manejador. Si implementa los manejadores de usuario en la parte del servidor de una aplicación Java™ API for RESTful Web Services (JAX-RS), puede mejorar el proceso de solicitudes y respuestas.
Acerca de esta tarea
En la solicitud, la respuesta y en las cadenas de manejadores de errores, puede añadir manejadores de usuario personalizados en la parte del servidor. Si es necesario un proceso adicional como, por ejemplo, registrar cada solicitud de cliente; entonces, añadir manejadores de usuario será una forma de implementar la funcionalidad de registro.
En general, un manejador recibe una instancia de MessageContext para acceder y manipular la información de la solicitud actual y una instancia HandlerChain para avanzar en la cadena. Para pasar el control de un manejador a otro en la cadena de manejadores, es responsabilidad del manejador invocar el método doChain() en la instancia de HandlerChain. Dado que un manejador puede invocar al método doChain() varias veces, debe considerar la posibilidad de que el manejador se pueda invocar más de una vez para la misma solicitud. Todas las interfaces relacionadas residen en el paquete org.apache.wink.server.handlers.
Los manejadores utilizan la interfaz de MessageContext para acceder y manipular la información de solicitud actual. Esta interfaz permite los manejadores mantener el estado de un mensaje estableciendo atributos en el contexto del mensaje. También puede utilizar esta interfaz para pasar información a otros manejadores de la cadena.
La cadena del manejador de solicitudes es responsable de procesar una solicitud de acuerdo con la la especificación de JAX-RS de aceptar la solicitud, buscar métodos de recursos para invocarlos, deserializar la entidad de solicitudes y, finalmente, invocar el método de recursos. Un manejador de solicitudes es una clase que implementa la interfaz org.apache.wink.server.handlers.RequestHandler.
La cadena del manejador de respuestas es responsable de manejar el objeto devuelto de la invocación de un método de recurso o de un método de subrecurso de acuerdo con la especificación de JAX-RS. Es responsable de determinar el código de estado de la respuesta, de seleccionar el tipo de medio de la respuesta y de serializar la entidad de la respuesta. Un manejador de respuestas es una clase que implementa la interfaz org.apache.wink.server.handlers.ResponseHandler.
Una clase de manejador de usuarios debe implementar la interfaz org.apache.wink.server.handlers.RequestHandler u org.apache.wink.server.handlers.ResponseHandler. Debe crear una clase que amplíe la interfaz org.apache.wink.server.handlers.HandlersFactory para devolverla al manejador de solicitudes o respuestas. Finalmente, debe especificar la ubicación del archivo de propiedades, que tiene el nombre de clase HandlersFactory, como un parámetro de inicialización en el archivo web.xml con el fin de asegurarse de que el servlet o filtro leerá el archivo de propiedades.
Procedimiento
Resultados
Se ha añadido un manejador de usuario en la cadena de manejadores en la parte del servidor de su aplicación de JAX-RS de modo que estos manejadores personalizados se invocan en cada proceso de solicitud o respuesta.