1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Chamada REST faz download ao usar MediaType.APPLICATION_SVG_XML

Galera,

Tenho um método REST que pega do banco um arquivo SVG e retorna para o cliente. Quando uso @Produces(MediaType.APPLICATION_SVG_XML) o browser faz o download do arquivo SVG. Quando uso o @Produces(MediaType.APPLICATION_XML)o browser renderiza a imagem sem fazer o download, e este é o comportamento que preciso. Alguém sabe explicar o porque disso?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>Teste SVG</title>
</head>
<body>
<embed type="image/svg+xml" src="http://localhost:8080/minha/chamada/rest/..." />
</body>
</html>

Meu método REST:

@GET
    @Path("/get/{id}")
    @Produces(MediaType.APPLICATION_SVG_XML)
    public Response getIconById(@PathParam("id") String sId)
    {
        Icon i = m_iconRepository.findById( sId );

        if (i == null)
        {

            return Response.status(Response.Status.NOT_FOUND).type(MediaType.TEXT_HTML).entity("Icon resource " + sId + " not found in database").build();
        }

        ResponseBuilder response = Response.ok((Object) i.getImageBytes());
        response.header("Content-Disposition", "inline; filename=" + i.getIconName());
        return response.build();
    }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jaxws java webservices ou faça a sua própria pergunta.