Отказано в доступе при попытке jnlp вызвать showDocument с файлом PDF - PullRequest
1 голос
/ 23 декабря 2011

Мне нужна помощь с этим showDocument в моем приложении jnlp. Я пытаюсь показать PDF-файл в другой вкладке из браузера, но плагин Java отклонен.

Мой файл JNLP имеет

  <security>
        <all-permissions/>
  </security>

и мой код:

    AccessController.doPrivileged(new PrivilegedAction()
    {
        @Override
        public Object run()
        {
            try
            {
                applet.getAppletContext().showDocument(new URL("file:///C:/Contrato.PDF"), "_blank");
            }
            catch(Exception e)
            {
                e.printStackTrace();
                showException("Erro ao exibir arquivo:" + e.getMessage());
            }
            return null;
        }
    });

но я получаю исключение

    java.lang.SecurityException: showDocument url permission denied

Если я пытаюсь сделать showDocument (google.com, _blank), который работает ... но когда я пытаюсь показать какой-либо файл, он не работает.

1 Ответ

2 голосов
/ 05 января 2012

Метод showDocument(URL) AppletContext никогда не предназначался для запуска файлов из локальной файловой системы (даже если он указан в качестве URL-адреса протокола file).

Существует как минимум две альтернативы:

  1. Фрагмент JNLP указывает, что это доверенное приложение. Поэтому для приложения 1.6+ можно вызвать Desktop.browse(URI).
  2. BasicService API JNLP предлагает метод showDocument(URL).
...