2011-01-20 4 views
0

J'écris un applet java qui utilise org.apache.commons.net.ftp.FTP pour télécharger un fichier sur un serveur FTP à partir d'une page WebSign étape applet java par étape

l'applet fonctionne dans Eclipse ..

mon projet contient Uploader.java, FtpUpload_thread.java et commons-net-2.2.jar (pour importer org.apache.commons.net.ftp.FTP) fichiers ..

compiler mon classes utilisant la commande cmd:

javac *.java -cp *.jar 

je mets la classe en html:

<applet code="Uploader.class" codebase="./" archive="commons-net-2.2.jar" width="600" height="230"></applet> 

mais lorsque je tente d'établir la connexion je reçois l'erreur:

java.security.AccessControlException: access denied (java.net.SocketPermission /*myftp*/ resolve) 

donc je dois signer mon applet ..

  • Je fais mon fichier jar:

    jar cvf Uploader.jar Uploader.class FtpUpload_threa commons-net-2.2.jar d.class

  • Je génèrent des clés:

    keytool -genkey -alias signFiles -keystore compstore

puis je mets les valeurs que le programme a besoin. . maintenant j'ai le fichier de base de données compstore

  • je signe le fichier JAR

    jarsigner -keystore compstore -storepass passe -keypass passer -signedjar UploaderS.jar Uploader.jar signFiles

et j'ai le fichier UploaderS.jar

maintenant j'ai mon dossier avec :

Uploader.jar 
UploaderS.jar 
compstore 
Uploader.class 
commons-net-2.2.jar 
FtpUpload_thread.class 

c'est tout ou j'ai besoin d'autres étapes?

Quel est le code html pour mettre mon applet de signe et l'exécuter avec des permissions?

merci!

+0

Je le résous en recompilant toute la librairie Apache associée à mes classes pour générer un fichier jar unique puis je l'ai signé – frx08

Répondre

0

Je vous recommande d'utiliser le plugin Java par opposition à l'étiquette < >.

Vous devez spécifier tous les pots requis par votre classe et utiliser le Je recommande archives signé

<object classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA" width="600" height="230"> 
    <param name="code" value="Uploader" /> 
    <param name="java_archive" value="UploaderS.jar, commons-net.jar" /> 
    <comment> 
     <embed width="600" height="230" code="Uploader" type="application/x-java-applet;version=1.6" archive="UploaderS.jar, commons-net.jar"> 
      <noembed> 
       No Java Support. 
      </noembed> 
     </embed> 
    </comment> 
</object> 

mettre un paquet sur votre classe d'applet.

Je ne sais pas comment spécifier les autorisations à utiliser par l'applet.

Espérons que cela aide.

+1

1) Je recommande d'utiliser le script deployJava.js qui gère tout ce bazar d'applet/objet/incorporer. 2) Si cette applet provient du même serveur que celui sur lequel elle est chargée, la seule raison pour laquelle elle doit être signée est d'accéder aux fichiers à télécharger. 3) Si l'utilisateur dispose du plug-in de nouvelle génération (Java 1.6.0_10 +), il peut être déployé en utilisant JWS et utiliser l'API JNLP. L'API JNLP permet même des applications en bac (non signées). pour accéder au système de fichiers local. –

+0

@Andrew très bon point. Pouvez-vous ajouter une référence à la documentation de deployJava.js et aux éléments JNLP de webstart? –

Questions connexes