IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Problème Applet et Javascript


Sujet :

Applets Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut Problème Applet et Javascript
    Bonjour à tous,
    J'ai un problème j'ai réalisé un applet et je veux appeler une fonction de l'applet dans ma page html grâce à du javascript mais je n'ai aucun résultat voici mon code
    fonction de l'applet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    public class Browse extends JApplet {
     
     
    	//initialisation de l'applet
    	public void init() {
    	    try {
    	        javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
    	            public void run() {
    	            	createGUI();	                
    	            }
    	        });
    	    } catch (Exception e) {
    	        System.err.println("createGUI error");
    	    }
    	}
     
    	private void createGUI() {
     
    		// contenu de l'applet
    		//String[] tab=roots();
    		try {
    			upFile("/poisson.jpg","http://localhost:8080/upload_test/page4.jsp");
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    	}
     
    	public String petitEssai(){
    		String s = "ca marche l'applet";
    		return s;
    	}
     
    	public String tabVersString(){
    		String s="";
    		String monTab[]=folder("/");
     
    		for (int i = 0 ; i < monTab.length ; i++) {
    		     s=s + monTab[i] + ";";		      
    		    }
     
    		return s;
    	}
     
    	//fonction qui renvoie les noms des disques dans un tableau de String
    	public String[] roots(){
    		File[] drive;
    		drive = File.listRoots();
     
    		String monTableau[]=new String[drive.length];
     
    	    for (int i = 0 ; i < drive.length ; i++) {
    	      monTableau[i]=drive[i].toString();
     
    	    }
     
    		return monTableau;
    	}
    }
    et la page html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta http-equiv="Content-Style-Type" content="text/css">
      <title></title>
      <meta name="Generator" content="Cocoa HTML Writer">
      <meta name="CocoaVersion" content="1038.36">
      <style type="text/css">
      </style>
      <script type="text/javascript">
    			function affichRacine(){
    				var str = document.applet.petitEssai();
    				document.writeln(str); // la fonction petitEssai fonctionne
    				var s = document.applet.tabVersString();//celle la non
     
     
    			}			
     
    </script>
    </head>
    <BODY>
     
     
     
    <applet id="applet" name="applet" code="applet.Browse" codebase="." 
    archive="MonApplet.jar,lib/httpclient-4.1.1.jar,lib/httpmime-4.1.1.jar,lib/httpcore-4.1.jar,lib/httpclient-cache-4.1.1.jar"  
    width="300" MAYSCRIPT height="300">
    </applet>
     
     
     
     
    <a href="javascript:;"
    onClick="affichRacine();">
    Cliquez ici!</a>
     
    </BODY>
     
     
     
    </body>
    </html>
    merci parce que je ne comprend pas peut être que la fonction n'est pas compatible avec du javascript enfin je sais pas

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a mon avis votre deuxième fonction a déclenché une exception, allez dans la console de l'applet pour la voir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Alors dans la console Java il ne se passe rien peut importe ce que je tente
    par contre dans la console java script c'est marqué :
    Uncaught Error: Error calling method on NPObject.

    donc je comprend pas trop

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    l'exception remonte jusque javascript.

    Faite un try catch dans votre méthode java pour attraper l'exception et l'afficher, mais je suppose que le problème est que monTab est null dans le code.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    J'ai tout mis entre try catch mais il n'y a pas d'exceptions levées

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    autant pour moi j'ai tout refait comme il faut et j'ai levé l'erreur

    java.security.AccessControlException: access denied (java.io.FilePermission / read)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
    at java.io.File.list(File.java:971)
    at java.io.File.listFiles(File.java:1051)
    at applet.Browse.folder(Browse.java:92)
    at applet.Browse.tabVersString(Browse.java:49)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at sun.plugin.javascript.JSInvoke.invoke(JSInvoke.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at sun.plugin.javascript.JSClassLoader.invoke(JSClassLoader.java:72)
    at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(JavaClass.java:123)
    at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(JavaClass.java:278)
    at sun.plugin2.liveconnect.JavaClass.invoke0(JavaClass.java:429)
    at sun.plugin2.liveconnect.JavaClass.invoke(JavaClass.java:410)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(LiveConnectSupport.java:980)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(LiveConnectSupport.java:637)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(LiveConnectSupport.java:632)
    at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(LiveConnectSupport.java:1743)
    at java.lang.Thread.run(Thread.java:680)


    donc apparement problème d'acces

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    une applet en général n'a pas le droit à accéder à la machine hôte (principe de la sandbox).

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Même si il est signé ?
    Parce que j'ai vu que quand il est signé on peut acceder à l'hôte.
    Sinon ce que je veux faire n'est pas possible ?

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si c'est signé, c'est possible, mais compliqué quand on rajoute javascript dans l'équation. Il ne peut pas y avoir de code javascript dans la pile d'appel car le code javascript, lui, n'est pas signé.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Je te remercie pour ta réponse précise.
    Est ce que tu verrais une solution pour faire un applet qui lit les fichier
    sur le disque de l'hote ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    et excuse moi j'ai oublié de preciser, sans afficher l'applet lui même qui doit rester invisible.

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    l'applet ne pourra pas être invisible puisque, au minimum, il y aura l'alerte de sécurité qui va se présenter pour demander l'autorisation à l'utilisateur.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Ouai exact c'est vrai mais je pensais pouvoir garder le style des pages sans mettre l'applet c'est dommage

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Merci beaucoup pour toutes ces reponses

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Salut c'est encore moi alors je ne sais pas si c'est une solution viable mais en fait j'appel une fonction dans javascript qui lance un thread qui lui lance mes fonctions java et ca fonctionne mais comme je le pensais ce n'est pas fini maintenant pour ma fonction qui upload un fichier vers un serveur je me retrouve avec l'exception socket permission est ce que tu as des pistes ?

  16. #16
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    767
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 767
    Par défaut
    Si vraiment tu veux faire des accès fichiers passe par une autre techno que les applets, tu peux faire du java web start, qui là te lance une vraie appli java.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Merci je vais regarder ça

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Et au niveau de changer le java policy file pour permettre plus d'accès , est ce que je peux faire ca et en quelque sorte l'inclure dans mon projet pour que ca marche chez un client ?

  19. #19
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le policy file inclu dans l'applet ne peut servir qu'a réduire les droit d'accès (en vue d'éviter qu'un petit malin abuse de l'applet que tu a signé et la détournant).


    Dans tous les cas, les règles de la sandbox s'appliquent. On ne veux pas qu'une applet inclue dans une page web aille faire n'importe quoi sans autorisation sur la machine de l'utilisateur

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Ok mais si on l'a signé et que l'utilisateur a accepter tous les risques c'est dommage que ca soit pas plus simple parce que ca marche niquel sous eclipse mais en sur navigateur c'est une autre histoire

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème applet avec HTML intégré
    Par NewBie_of_rostand dans le forum JBuilder
    Réponses: 4
    Dernier message: 15/03/2006, 11h48
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. Problème Applet Java et Win XP SP2
    Par octal dans le forum Applets
    Réponses: 4
    Dernier message: 04/02/2006, 09h57
  4. Réponses: 6
    Dernier message: 26/04/2005, 12h09
  5. [Applet][JSP][JavaScript]
    Par jse dans le forum Applets
    Réponses: 1
    Dernier message: 14/09/2004, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo