вернуть PDF в браузере из веб-службы - PullRequest
1 голос
/ 07 февраля 2011

Я относительно новичок в разработке Java. Я хочу создать веб-сервис (jax-ws) / веб-приложение, которое получит некоторую информацию и сгенерирует PDF, а затем откроет PDF в браузере.Мне удается создать PDF (используя itext) и открыть его в браузере с помощью сервлета (с FileInputStream и т. Д.).Однако я не знаю, как вернуть сервлет из веб-сервиса.Что мне делать, поэтому, когда я звоню в веб-службу, чтобы получить pdf через сервлет?

1 Ответ

1 голос
/ 07 февраля 2011

Если вы вернули PDF из сервлета, это означает, что ваш сервлет отправил поток PDF в качестве вывода и, возможно, установил тип содержимого как «application / pdf».Это отлично работает в браузере, и это правильный способ сделать это.

Однако вы не можете легко вызывать веб-сервис (независимо от того, является ли он JAX-WS или любым другим стеком) из браузера.Для вызова веб-службы требуется POST и строго определенный контент SOAP.Однако вы можете использовать AJAX для вызова веб-службы, но это другая история (также посмотрите на REST).

Если вы хотите вернуть двоичные данные из веб-службы (имейте в виду, что веб-службыпредназначены для компьютеров, а не для людей, использующих веб-браузеры), у вас есть два варианта: либо сериализовать двоичные данные с использованием base64, либо использовать многочастный HTTP-ответ (стандарт MTOM, см., например: http://www.mkyong.com/webservices/jax-ws/jax-ws-attachment-with-mtom).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...