Возврат содержимого URL в виде файла в ответе jaxRS - PullRequest
0 голосов
/ 18 февраля 2012

Я - сервис-оболочка REST, и когда я вызываю бэкэнд-сервис, в некоторых случаях они генерируют файл, который я могу получить по определенному URL: https://localhost:1234/... Как наиболее эффективно использовать javax.ws .core.Response для отправки содержимого по этой ссылке вызывающей стороне? Я, вероятно, могу самостоятельно прочитать URL-адрес в локальный файл и отправить его таким образом, но мне интересно, подойдет ли мне REST. Спасибо,

1 Ответ

0 голосов
/ 26 июня 2012

, когда ваш внутренний URL-адрес общедоступен для вашего клиента, вы можете отправить перенаправление 301.

Если это не

@Get
@Produces({...})
public Response readFile() {

    return Response.ok().entity(new StreamingOutput() {
        @Override public void write(OutputStream output)
           throws IOException, WebApplicationException {
           // open the back-end url and copy the bytes to given output
           final InputStream input = new URL(back-end-url).openStream();
           final byte[] buf = new byte[1024];
           for (int read = -1; (read = input.read(buf)) != -1; ) {
               output.write(buf, 0, read);
           }
           output.flush();
        }
    }).build();
}
...