Откройте файл PDF в браузере клиента прямо из класса сервлетов Java - PullRequest
2 голосов
/ 21 февраля 2011

Привет, ребята, так вот краткое изложение:

По сути, то, что я хочу: вызов процедуры PL / SQL (с использованием UTL_HTTP) -> веб-приложение Java, сервлет -> открывает окно браузера иотображает PDF.

Для этого мы используем пакет UTL_HTTP в нашей процедуре PL / SQL, поскольку он имеет возможность отправлять запросы на внешние URL-адреса с помощью метода POST.Единственная причина, по которой мы используем этот пакет, заключается в том, что наши данные передаются в качестве параметров POST (очевидно, что нет другого способа открыть внешние сайты непосредственно из процедур PL / SQL при передаче параметров через метод POST).Существуют и другие средства для непосредственного предоставления URL-адресов и передачи параметров get как части строки URL-адреса запроса, но это может привести к появлению таких чувствительных параметров, как имя пользователя, пароль, серийный идентификатор и т. Д.

Этот запрос http из процедуры PL / SQLперехватывается сервлетом в нашем веб-приложении Java.Наше веб-приложение Java является приложением управления документами и обрабатывает всю логику управления документами.

Нам удалось добраться до сервлета, а также взять PDF-файл и поместить его в ответ.

В этом и заключается подвох: поскольку исходное приложение представляло собой процедуру PL / SQL, которая отправляет HTTP-запрос непосредственно в наше веб-приложение, ни в коем случае не открывается окно браузера.Таким образом, в нашем классе сервлетов Java мы берем PDF и записываем его в ответ.Но нам нужно создать окно браузера для рендеринга PDF.Я нашел этот аккуратный сайт , который предоставляет Java-код для открытия окна браузера непосредственно из класса Java.Но проблема в том, что окно браузера открывается непосредственно на сервере, а не на клиенте. Это окно браузера должно открываться на нашем клиентском компьютере, с которого был отправлен запрос http, а не на сервере.

Любойпредложения?

Ура

1 Ответ

0 голосов
/ 23 февраля 2011

Если вы используете веб-приложение PL / SQL (используя APEX или webToolkit), вы можете отправить в браузер большой двоичный объект, полученный при вызове UTL_HTTP сервлету

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