Implementando aplicativos da web do JAX-RS 1.1
Após ter montado o seu aplicativo da Web Java™ API for RESTful Web Services (JAX-RS), é possível implementar o pacote web application archive (WAR) ou o pacote enterprise archive (EAR) no servidor de aplicativos.
Antes de Iniciar
Para implementar um aplicativo da Web JAX-RS, é necessário um pacote WAR ou pacote EAR que esteja configurado e ativado para serviços RESTful.
Sobre Esta Tarefa
Cada aplicativo da Web deve ter uma raiz de contexto para o aplicativo da Web implementar com êxito. Uma raiz de contexto para cada módulo de Web é definido no descritor de implementação do aplicativo durante a montagem do aplicativo ou durante a implementação do aplicativo. A raiz de contexto é combinada com o mapeamento de servlet definido a partir do arquivo WAR para compor a URL integral que os usuários digitam para acessar o servlet. A raiz de contexto para cada aplicativo da Web implementado deve ser exclusivo no servidor. A raiz de contexto também pode estar vazia. Por exemplo, se um aplicativo da Web usou uma raiz de contexto de sample/application/, a URL de solicitação do aplicativo da Web começa comhttp://<hostname>:<port>/sample/application/.
O padrão da URL de um servlet é anexado à raiz de contexto do aplicativo da Web. Por exemplo, se a raiz de contexto ésample/application/ e o mapeamento da URL do servlet é rest/api/*, a URI base para o aplicativo da Web JAX-RS é http://<hostname>:<port>/sample/application/rest/api.
Procedimento
Resultados
O aplicativo da Web JAX-RS é implementado e pronto para o seu uso de negócios.
A implementação de um aplicativo da Web Java API for RESTful Web Services (JAX-RS) é bem-sucedida se for possível acessar o aplicativo digitando uma Uniform Resource Locator (URL) em um navegador ou se for possível acessar o aplicativo seguindo um link. Se você não puder acessar seu aplicativo, siga essas etapas para eliminar alguns erros comuns que podem ocorrer durante a implementação.

Use as seguintes dicas para resolver erros comuns durante a implementação de aplicativos da Web JAX-RS:
- Uma mensagem de erro HTTP 404 Não Localizado é enviada de volta para o cliente na resposta do servidor.
- Para resolver esse problema, conclua as seguintes ações:
- Verifique se as classes de recurso raiz são anotadas com uma anotação @javax.ws.rs.Path e se o valor na anotação está correto. As classes de recursos raiz sem uma anotação @Path não são registradas com o tempo de execução JAX-RS. Para saber mais, consulte a definição dos padrões de URI para recursos nas informações de aplicativos RESTful.
- Verifique se a classe de recursos raiz está incluída no conjunto de classes retornadas a partir do método getClasses() para as subclasses da classe javax.ws.rs.core.Application. Classes não registradas nas subclasses da classe javax.ws.rs.core.Application não são reconhecidas pelo ambiente de tempo de execução JAX-RS. Para saber mais, consulte a definição dos padrões de URI para recursos nas informações de aplicativos RESTful.
- Verifique se a configuração do arquivo web.xml está correta com os padrões de URL esperados. Para obter informações adicionais, consulte o web.xml para obter informações de servlets e filtros JAX-RS.
- Verifique se a URL que está sendo usada está correta e inclui a raiz de contexto. Se você estiver usando um servlet, o padrão de URL de servlet fará parte da URL final. Usar um filtro pode ser mais adequado no seu aplicativo da Web. Para obter informações adicionais, consulte o arquivo web.xml para obter informações de servlets e filtros JAX-RS.
- Uma mensagem de erro Método HTTP 405 Não Permitido é enviada de volta ao cliente na resposta do servidor.
- Se o URI do servlet de uma URL de solicitação corresponder ao valor do caminho de um método de recurso, mas o método de HTTP enviado não corresponder à anotação do método, então, um código de status HTTP 405 Método Não Permitido é retornado.
No exemplo de código a seguir, a URL da solicitação termina com sayhello, mas a solicitação contém um POST em vez de um GET, portanto, 405 é retornado.
@javax.ws.rs.Path("helloworld") public class SampleResource { ... @javax.ws.rs.Path("sayhello") @javax.ws.rs.GET public String getHello() { ...
Para resolver esse problema, conclua as seguintes ações:
- Verifique se o método de HTTP enviado corresponde à anotação do método.
- Uma mensagem de erro HTTP 406 Não Aceito é enviada automaticamente de volta para o cliente na resposta do servidor.
- Para resolver esse problema, conclua as seguintes ações:
- Verifique se o cabeçalho do pedido Aceitar HTTP no pedido recebido está correto. Para saber mais, consulte as informações de Implementando Negociação de Conteúdo com Base em Cabeçalhos HTTP.
- Verifique se o valor @javax.ws.rs.Produces no método de recurso ou classe de recurso é compatível com o cabeçalho de pedido recebido Aceitar HTTP. Para saber mais, consulte a definição dos tipos de mídia para recursos nos aplicativos RESTful.
- Uma mensagem de erro HTTP 415 Tipo de Mídia Não Suportado é enviada automaticamente de volta para o cliente na resposta do servidor.
- Para resolver esse problema, conclua as seguintes ações:
- Verifique se o cabeçalho de solicitação HTTP Content-Type na solicitação recebida está correto e está sendo enviado. Para saber mais, consulte a definição dos tipos de mídia para recursos nos aplicativos RESTful.
- Verifique se o valor @javax.ws.rs.Consumes no método de recurso ou classe de recurso é compatível com o cabeçalho de pedido recebido Tipo de Conteúdo HTTP.
- Uma mensagem de erro HTTP 204 Nenhum Conteúdo é enviada automaticamente de volta para o cliente na resposta do servidor.
- Para resolver esse problema, conclua as seguintes ações:
- Determine se uma resposta nula em seu recurso deve resultar em um código de resposta 204 Nenhum Conteúdo.
Para obter informações sobre problemas conhecidos e sua resolução, consulte a página do IBM Support.
O Suporte IBM® tem documentos que podem economizar tempo para reunir informações que são necessárias para resolver esse problema.