PDA

View Full Version : ...java...applet...e policy...


ally
23-03-2005, 10:18
...vi illustro il mio problema...

...devo creare un programma che funzioni tramite broser...applet...che permetta la scrittura dei file...fin qui tutto bene...creo l'applet...creo il metodo di scrittura...modifico la policy java del mio utente in questa maniera...



grant codeBase "file:c:/cartella in cui il programma deve funzionare/*" {
permission java.security.AllPermission;
};



...e fin qui tutto bene...leggo...scrivo...tutto bellissimo...pero' arrivo al punto in cui decido che l'applet mi sta stretta...necessito di un programma java che si occupi della sola scrittura ricevendo metodi lanciati dall'applet...benissimo...creo il programma...e qui nasce il problema...vengono generati errori di policy nel momento in cui tale programma riceve da un applet il lancio del metodo di scrittura...se tale lancio arriva da un programma java tramite riga di comando il tutto funge senza problemi...non capisco dove possa essere l'errore visto che la policy è stata modificata al fine di permettere anche all'applet la scrittura/lettura di file...

...voi che dite?...

ally
23-03-2005, 10:20
...da precisare che il dialogo applet/java funziona correttamente...i metodi vengono riconosciut e lanciati senza problemi...

kingv
23-03-2005, 12:47
Originariamente inviato da ally

...voi che dite?...


non ho capito bene cos'hai fatto, avevi un'applet che scrive qualcosa su disco e poi? questa applicazione di cui parli è lanciata dall'utente?

ally
23-03-2005, 13:07
Originariamente inviato da kingv
non ho capito bene cos'hai fatto, avevi un'applet che scrive qualcosa su disco e poi? questa applicazione di cui parli è lanciata dall'utente?


...applet in grado di scrivere...tutto funziona...

...applet che chiama metodi java...tutto funziona...

...java che scrive...tutto funziona...

...applet che chiama un metodo java che scrive...non funziona...

...questo è l'estremo sunto...si l'applicazione è lanciata dall'utente ma tutto deve fungre in locale...:)

kingv
23-03-2005, 13:15
Originariamente inviato da ally

...applet che chiama un metodo java che scrive...non funziona...




scusa sono di coccio ma non riesco a capire cosa intendi per applet che chiama un metodo java, l'applet è una classe java che gira in una sandbox all'interno del browser.

non e' che puoi postare qualche pezzo di codice?

ally
23-03-2005, 13:23
...ok...



public class MasterApplet extends Applet {


public void scrivi() {

Test.lancia();

}
}


public class Test {

public static void lancia(){

String string = "ciao";

try
{
PrintWriter pw = new PrintWriter(new FileWriter("c:/cartella/do.html"));
pw.println("<applet id=\"player\" code=Appletxxx.class width=780 height=580>");
pw.println("<param name=codice value = "+string+">;");
pw.println("<param name=codice value = "+string+">;");
pw.println("</applet>");
//controllo = ("<param name=codice value = "+string+">;");
pw.close();
}
catch(IOException e){
System.out.println ("exception" + e );
}
}

}



...questi sono in grande sintesi i due programmi...

kingv
23-03-2005, 14:49
puo' darsi che nella codebase che hai specificato ci sia qualcosa che non gli piaccia.


prova a rimuoverlo lasciando solo
grant {
permission java.security.AllPermission;
};

per rimuovere qualsisi limitazione (giusto per fare un test)

e a metterlo su un webserver di prova (anche locale) e a indicare la codebase sotto forma di URL HTTP.

ally
23-03-2005, 14:59
...si ma la mia applicazione non gira su di un server...uso un browser perchè il progetto lo richiede...ma tutto deve svolgersi assolutamente in locale...nessun web server...ora provero' ad eliminare il path a cui applica i privilegi...ma penso sia obbligatorio...forse c'è un conflitto legato alla sand box?...

ally
23-03-2005, 15:10
...risolto...grazie KingV...avevi ragione...ho modificato il file eliminando il path e ora funge...;)