2015-07-29 3 views
1

Я пытаюсь читать удаленный файл PDF с помощью апплета. Он отлично работает, когда я запускаю только апплет из моего IDE, но он бросает SocketPermission исключение, когда я вставлять его в объект тега HTML ... Ниже HTML для доступа апплетИсключение контроля доступа (java.net.SocketPermission 127.0.0.1:8080 connect, resolve)

<object type="application/x-java-applet" height="300" width="550"> 
     <param name="code" value="MyApplet" /> 
     <param name="archive" value="applet.jar" /> 
     <param name="filePath" value="https:path_to_pdf.pdf"> 
     Applet failed to run. No Java plug-in was found. 
    </object> 

и это, как я пытаюсь прочитать файл в апплете

URL url; 
url = new URL(pdfUrl); 

InputStream in = null; 
try { 
    in = url.openStream(); 
} catch (IOException ex) { 
    Logger.getLogger(MyApplet.class.getName()).log(Level.SEVERE, null, ex); 
} 

СДЕЛАН ПОКА: Я добавил свой локальный адрес в списке исключений Java по вопросам сертификации. Я также создал файл политики, чтобы предоставить все разрешения и поместить в домашний каталог ...

здесь является исключение детали

Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied ("java.net.SocketPermission" "example.com:443" "connect,resolve") 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457) 
at java.security.AccessController.checkPermission(AccessController.java:884) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051) 
at sun.plugin2.applet.SecurityManagerHelper.checkConnectHelper(Unknown Source) 
at sun.plugin2.applet.AWTAppletSecurityManager.checkConnect(Unknown Source) 
at sun.net.www.http.HttpClient.openServer(HttpClient.java:510) 
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275) 
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512) 
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) 
at java.net.URL.openStream(URL.java:1038) 
at MyApplet.printPdf(MyApplet.java:162) 
at MyApplet.actionPerformed(MyApplet.java:118) 
at java.awt.Button.processActionEvent(Button.java:409) 
at java.awt.Button.processEvent(Button.java:377) 
at java.awt.Component.dispatchEventImpl(Component.java:4881) 
at java.awt.Component.dispatchEvent(Component.java:4703) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
at java.awt.EventQueue.access$500(EventQueue.java:97) 
at java.awt.EventQueue$3.run(EventQueue.java:709) 
at java.awt.EventQueue$3.run(EventQueue.java:703) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
at java.awt.EventQueue$4.run(EventQueue.java:731) 
at java.awt.EventQueue$4.run(EventQueue.java:729) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
+1

Не используйте апплеты в 2015 году! Использовать JNLP (иначе Java WebStart) – fge

+0

Я проверяю JNLP, потому что я не знаком с ним. но я думаю, что его снова использование тегов апплета html и тегов апплетов устарело в соответствии с моей информацией. fge – user1888781

ответ

0

Вы запускаете апплет на локальном компьютере. Вы не используете https. Вы используете file://.

file://path/to/your/pdf/file.pdf 
+0

Я получаю доступ к удаленному файлу PDF, а не локальному файлу PDF. – user1888781