Newsgroup: it.comp.java
Titolo: java.security.AccessControlException: access denied

Ho scritto un'applet che permette di aprire una serie di pagine HTLM
cliccando su bottoni ed elementi di menů. Ho seguito le indicazioni della
pagina
http://java.sun.com/docs/books/tutorial/applet/appletsonly/browser.html
Tutto bene in rete, ma quando provo a testarla sul mio PC il Frame non si
apre neppure; con Appletviewer ricevo il seguente messaggio:
java.security.AccessControlException: access denied
(java.net.SocketPermission [nome della cartella dove si trova l'Applet]
resolve)
        at java.security.AccessControlContext.checkPermission(Compiled Code)
        at java.security.AccessController.checkPermission(Compiled Code)
        at java.lang.SecurityManager.checkPermission(Compiled Code)
        at java.lang.SecurityManager.checkConnect(SecurityManager.java:1004)
        at java.net.InetAddress.getAllByName0(Compiled Code)
        at java.net.InetAddress.getAllByName0(InetAddress.java:544)
        at java.net.InetAddress.getByName(Compiled Code)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:250)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:270)
        at sun.net.www.http.HttpClient.New(HttpClient.java:282)
        at
sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:3
72)
        at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(Compiled Code)
        at java.net.URL.openStream(URL.java:818)
        at brani.lettura(Compiled Code)
        at brani.init(brani.java:761)
        at sun.applet.AppletPanel.run(Compiled Code)
        at java.lang.Thread.run(Thread.java:479)
C'č modo per evitare l'errore? Si noti che non mi interessa che la cosa
funzioni sul PC degli altri, solo sul mio per testare l'applet piů
rapidamente (senza bisogno di trasferire ogni volta i files solo per vedere
se funzionano le modifiche apportate).
La struttura dell'Applet č la seguente; trascuro i dettagli, visto che so
per certo che, eliminando del tutto AppletContext, l'errore sparisce (ma i
link non si aprono piů...):
class finestra extends Frame
 {
  private String theURL=new String();
  AppletContext appletContext;
  public finestra(AppletContext appletContext)
   {
    super();
    this.appletContext = appletContext;
    Toolkit tk = Toolkit.getDefaultToolkit();
//ecc. ecc.
    }
public class brani extends Applet
 {
  finestra f;
//costruttore
  public void init()
   {
//ecc. ecc.
    finestra f=new finestra(getAppletContext());
    }
 }

 
Probabilmente la tua Applet cerca di accedere a qualcosa che gli è
impedito dal browser web. A cosa accede nel metodo lettura()?
-- 
Pietro	- 
http://www.pietroweb.tk
Linux Registered User #304991
Powered by *Mandrake GNU/Linux 9.2*

 impedito dal browser web. A cosa accede nel metodo lettura()?
Dovrebbe leggere un file sul mio HD, situato nella stessa cartella dei files
class:
filebuf=new BufferedReader(new FileReader("pagine.txt")); //ecc. ecc.
Penso proprio che si tratti di motivi di "sicurezza", perchè aggiungendo un
metodo main ed eseguendolo in locale non ho problemi (solo, in quella
modalità devo eliminare i riferimenti ad AppletContext, altrimenti non
funziona nulla).


Per farla funzionare da applet devi crearti un pacchetto .jar con tutte le
tue classi e successivamente firmarlo con jarsigner che trovi nel SDK.
