Implementando Manipuladores de Usuário para Aplicativos JAX-RS
É possível desenvolver manipuladores de usuário para customizar o comportamento de uma cadeia de manipulador e para incluir funcionalidade exclusiva para o manipulador. Ao implementar manipuladores de usuário no lado do servidor da API Java™ para aplicativos Serviços da Web RESTful (JAX-RS), é possível aprimorar o processamento de pedido e de resposta.
Sobre Esta Tarefa
É possível incluir manipuladores de usuário customizados no lado do servidor para as cadeias de pedido, de resposta e de erros. Se um processamento adicional, como a criação de log de cada pedido do cliente, for necessário, incluir manipuladores de usuário é uma maneira de implementar a funcionalidade de criação de log.
Em geral, um manipulador recebe uma instância MessageContext para acessar e manipular as informações de pedido atuais e uma instância HandlerChain para avançar na cadeia. Para transmitir o controle de um manipulador para outro na cadeia de manipulador, o manipulador é responsável por chamar o método doChain() na instância HandlerChain. Como o manipulador pode chamar o método doChain() várias vezes, é necessário considerar a possibilidade de seu manipulador poder ser chamado mais de uma vez para o mesmo pedido. Todas as interfaces relacionadas ao manipulador residem no pacote org.wink.server.handlers.
Os manipuladores usam a interface MessageContext para acessar e manipular as informações atuais de pedido. Essa interface permite que os manipuladores mantenham o estado de uma mensagem ao configurar os atributos no contexto da mensagem. Também é possível usar essa interface para transmitir informações para outros manipuladores na cadeia.
A cadeia do manipulador de pedidos é responsável por processar um pedido de acordo com a especificação JAX-RS ao aceitar o pedido, procurar pelo método de recurso a ser chamado, desserializar a entidade de pedido e, por último, chamar o método de recurso. Um manipulador de pedido é uma classe que implementa a interface org.apache.wink.server.handlers.RequestHandler.
A cadeia de manipulador de resposta é responsável por manipular o objeto retornado a partir da chamada de um método de recurso ou de um método de sub-recurso de acordo com a especificação JAX-RS. Ele é responsável por determinar o código de status de resposta, selecionar o tipo de mídia de resposta e serializar a entidade de resposta. Um manipulador de resposta é uma classe que implementa a interface org.apache.wink.server.handlers.ResponseHandler.
Uma classe de manipulador de usuário deve implementar a interface org.apache.wink.server.handlers.RequestHandler ou org.apache.wink.server.handlers.ResponseHandler. É necessário criar uma classe que estenda a interface org.apache.wink.server.handlers.HandlersFactory para retornar o manipulador de pedido ou de resposta. Por fim, é necessário especificar o local do arquivo de propriedades, que possui o nome de classe HandlersFactory, como um parâmetro de inicialização no arquivo web.xml, para garantir que o arquivo de propriedades seja lido pelo servlet ou filtro.
Procedimento
Resultados
Você adicionou um manipulador de usuário na cadeia de manipulador no lado do servidor do seu aplicativo JAX-RS, para que esses manipuladores customizados sejam chamados em cada processo de pedido ou de resposta.