Usando os Objetos de Contexto JAX-RS Para Obter Mais Informações Sobre os Pedidos

O Java API for RESTful Web Services (JAX-RS) fornece tipos diferentes de contexto para as classes e provedores de recursos. É possível usar os objetos de contexto para acessar as informações de pedido, como descoberta de cabeçalhos HTTP, que são enviados como parte do pedido. Os objetos de contexto também fornecem métodos de conveniência para avaliar um pedido e criar uma resposta apropriada.

Sobre Esta Tarefa

Os recursos do aplicativo Representational State Transfer (REST) podem precisar inspecionar alguns dados de contexto de aplicativo na chamada. Por exemplo, um método de recurso que processa uma consulta HTTP GET pode querer inspecionar os cabeçalhos HTTP do pedido para o cabeçalho HTTP Accept-Language para que o método possa gerar uma resposta no idioma especificado pelo pedido.

O JAX-RS define uma simples maneira de recuperar esses dados no escopo do recurso de aplicativo. Ao declarar a anotação @Context com o objeto apropriado como o parâmetro para um método de recurso ou como um campo na classe de recurso, os dados desejados são introduzidos no recurso. A implementação JAX-RS preenche o parâmetro ou o campo com os dados contextuais e o método de recurso possui acesso a todos os dados contextuais que precisar.

É possível usar os seguintes tipos de interfaces que são introduzíveis pelo ambiente de tempo de execução JAX-RS:
Tipos de Interface Description
javax.ws.rs.core.UriInfo A interface UriInfo fornece o URI completo especificado pelo pedido. Essa interface também pode inspecionar qual(is) recurso(s) correspondeu(ram) ao URI de pedido.
javax.ws.rs.core.Request A interface Request fornece informações sobre o pedido, como POST ou GET. Essa interface também pode avaliar as pré-condições baseadas nas tags de entidade de pedido.
javax.ws.rs.core.HttpHeaders A interface HttpHeaders fornece acesso apenas leitura para todos os cabeçalhos HTTP.
javax.ws.rs.core.SecurityContext A interface SecurityContext fornece informações apenas leitura sobre segurança, como esquema de autenticação ou entidade de segurança.
javax.ws.rs.ext.Providers A interface Provedores permite recuperação das implementações ContextResolver, ExceptionMapper, MessageBodyWriter ou MessageBodyReader.

Além dos tipos de interface JAX-RS, é possível injetar tipos de contêiner da Web, como javax.servlet.http.HttpServletRequest, usando a anotação @Context conforme descrito na especificação JAX-RS.

Procedimento

  1. Configure o ambiente de desenvolvimento.
    1. Antes de iniciar o desenvolvimento de aplicativos JAX-RS, é necessário configurar o ambiente de desenvolvimento ao incluir as bibliotecas JAX-RS no caminho de classe.
  2. Definir os recursos nos aplicativos da Web JAX-RS.
    1. Os recursos são o bloco de construção básico de um serviço RESTful. Os recursos podem conter dados estáticos ou atualizados dinamicamente. Os exemplos de recursos a partir de um aplicativo de armazenamento de manual online incluem um manual, uma ordem de um armazenamento e uma coleta de usuários. Ao identificar os recursos no seu aplicativo, poderá tornar seu serviço mais útil e fácil de desenvolver.
  3. Configure o aplicativo JAX-RS.

    É possível configurar aplicativos JAX-RS de várias formas dependendo de suas necessidades. Para aproveitar a funcionalidade Java™ Platform, Enterprise Edition (Java EE) 6, é possível usar os recursos de varredura de anotação. Ao usar a varredura de anotação, é possível omitir uma subclasse JAX-RS javax.ws.rs.core.Application ou ter uma subclasse javax.ws.rs.core.Application minimamente definida. Como alternativa, é possível especificar o servlet ou filtro do IBM® JAX-RS se quiser usar a funcionalidade disponível no servlet e filtro do IBM JAX-RS.

    Usando um dos métodos de configuração do JAX-RS Versão 1.1, é possível omitir uma subclasse javax.ws.rs.core.Application em seu aplicativo ou ter uma subclasse javax.ws.rs.core.Application que retorne um conjunto vazio de classes para informar o ambiente de tempo de execução do JAX-RS para localizar e usar todas as classes JAX-RS no aplicativo. É possível que você queira usar este método quando não quiser ter que incluir manualmente cada classe JAX-RS relevante em uma subclasse javax.ws.rs.core.Application conforme desenvolve o aplicativo.

    Ao especificar o servlet e filtro IBM JAX-RS específicos, é possível aproveitar e garantir o comportamento do IBM JAX-RS específico. Por exemplo, usar o filtroIBM JAX-RS pode ser útil no desenvolvimento de um aplicativo da Web com uma combinação de recursos JAX-RS e arquivos JavaServer Pages (JSP) com os mesmos padrões de URL.

    Embora haja um método de configuração de JAX-RS V1.1 que suporte o uso de um arquivo web.xml opcional, se quiser especificar restrições de segurança ou funções, ou, se quiser aproveitar os outros recursos ativados usando um arquivo web.xml, você deverá especificar as informações em um arquivo web.xml.

    Escolha um dos três métodos a seguir para configurar seu aplicativo JAX-RS:

    • Configurar aplicativos JAX-RS usando métodos JAX-RS 1.1

      Use este método se quiser usar os recursos de varredura de anotação ou usar os métodos de configuração do JAX-RS 1.1. É possível usar os recursos de varredura de anotação para promover a portabilidade do aplicativo, para minimizar a quantidade de código de configuração ou para modificar o aplicativo de forma dinâmica sem mudanças no código do aplicativo.

    • Configurar o arquivo web.xml para servlets JAX-RS

      Use este método se quiser especificar os recursos que estão ativados usando os parâmetros de inicialização de servlet para alterar o comportamento e garantir que se obtém o servlet IBM JAX-RS. Ao usar os servlets, é possível definir um caminho de servlet no arquivo web.xml que é anexado à URL de base.

    • Configurar o arquivo web.xml para filtros JAX-RS

      Use este método se quiser usar o filtro quando tiver JSPs, outros servlets e filtros e recursos JAX-RS com uma combinação de padrões URL. É possível configurar o arquivo web.xml para definir filtros que indicam as possíveis URLs nas quais o filtro pode ser chamado.

  4. Inclua campos e parâmetros de contexto para obter informações sobre os pedidos. É possível obter informações sobre os pedidos usando os objetos HttpHeaders, objetos UriInfo, objetos Request ou objetos SecurityContext.
  5. Montar aplicativos da Web JAX-RS.
    1. Após desenvolver os arquivos de classe Java para o seu aplicativo da Web JAX-RS e editar o arquivo web.xml para ativar o servlet JAX-RS, você está pronto para montar o aplicativo. Montar o aplicativo da Web em um pacote archive aplicativo da Web (WAR). É possível montar o pacote WAR em um pacote archive corporativo (EAR), se necessário.
  6. Implementar aplicativos da Web JAX-RS.
    1. Após ter montado o seu aplicativo da Web JAX-RS, é necessário implementar o seu pacote archive Web (WAR) ou o pacote archive corporativo (EAR) no servidor de aplicativos.

Resultados

Você implementou objetos de contexto para saber mais sobre pedidos para o seu aplicativo da Web JAX-RS.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contextobjects
Nome do arquivo: twbs_jaxrs_contextobjects.html