PDA

View Full Version : [JAVA]certificazione in java web start


softoxy
03-04-2006, 12:40
Ho un problema di permissi in lettura quando faccio partire la mia applicazione tramite web start.
Ovviamente nn è possibile in remoto accedere al file system, ma ho certificato il file jar dopodichè ho spostato il file certficato nella cartella "webapps".
Mi continua a dare errore nei permessi dell'utente.

Forse ho certificato male?

keytool -genkey -alias signapplet -keystore mystore
richiede due password

jarsigner -keystore mystore -signedjar smyapplet.jar myapplet.jar signapplet

keytool -export -keystore mystore -alias signapplet -file signapplet.cer

entrambi i file signapplet.cer e smyapplet.jar sono nella cartella webapps.

il file jnlp è il seguente

<?xml version = '1.0' encoding = 'windows-1252'?>
<jnlp spec="1.0+" codebase="http://localhost:8988" href="/Application1-myapplet-context-root/jwsMyApplet.jnlp">
<information>
<title>FTP Client</title>
<vendor>Alessandro</vendor>
<description>p</description>
</information>
<resources>
<j2se version="1.4+"/>
<jar href="/Application1-myapplet-context-root/apps/MyApplet.jar" main="true" download="eager"/>
</resources>
<application-desc main-class="MyApplet.MyApplet"/>
</jnlp>

Cosa devo fare per far leggere un file sul file system del client remote alla mia applicazione utilizzando java web start?

grazie.

softoxy
03-04-2006, 13:07
l'errore che esce fuori dalla console di java web start è il seguente:

java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)

PGI-Bis
03-04-2006, 13:25
Nel descrittore jnlp aggiungi la richiesta dei permessi urbi et orbi:

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

Senza, Java Web Start tratta l'applicazione come non certificata.

softoxy
03-04-2006, 14:42
Perfetto grazie della risposta.
Adesso vede la certificazione, ma non trova le nuovi classe da importate.
Ho letto che una java web start, nella stessa cartella dove risiede il jar principale, deve contenere tutte le classi non standard da importare.
La cartella infatti contiene MyApplet, il certificato e il file jar per l'invio in ftp:

commons-net-1.4.1.jar

nel mio caso, ma potrebbe essere qualsiasi altro file jar.

Quando utilizza un metodo della classe in questione, mi da questo errore:

java.lang.NoClassDefFoundError: org/apache/commons/net/ftp/FTPClient

????

softoxy
03-04-2006, 17:28
Ok, trovato. bisogna aggiungere tutte le risorse nel file jnlp :

<resources>
<j2se version="1.4+"/>
<jar href="/Application1-myapplet-context-root/apps/MyApplet.jar" main="true" download="eager"/>
<resources>
<j2se version="1.4+"/>
<jar href="/Application1-myapplet-context-root/apps/MyApplet2.jar" main="true" download="eager"/>
</resources>
......
</resources>

L'incoveniente è che se una è certificata lo devono essere anche le altre.