Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1689 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Applet signée] problême ouverture de fichier [résolut mais...]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Applet signée] problême ouverture de fichier [résolut mais...]

n°968003
Nim36
Posté le 01-02-2005 à 10:27:24  profilanswer
 

Bonjour
 
J'ai une applet signée sur une page web. Lorsque que j'éxecute cette page web, l'applet fonctionne parfaitement sur certains browsers, mais rien ne se passe sous les autres que j'ai pu essayer.
 
Tous les browsers utilisent le JRE 1.4.2 de SUN, et toute éventuelle machine virtuelle microbesoft est désactivée...
L'applet fonctionne correctement avec IE5.5 et Netscape 7.02, mais refuse de faire quoique ce soit avec IE6.0 et Firefox (sans laisser le moindre message d'erreur) (en fait, elle ne fait plus rien après avoir demandé l'acceptation du certificat)
 
Quelqu'un aurait une idée pour faire marcher ça partour ?
 
Ci joint le code de la page web

Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6. <applet CODE = "test.class" ARCHIVE = "sTest.jar" width=350 height=200></applet>
  7. </body>
  8. </html>


et celui de l'applet (réduit à la partie défaillante)

Code :
  1. import java.applet.*;
  2. import java.net.*;
  3. public class test extends Applet {
  4.   public void init() {
  5.     try {
  6.       String chemin = "file:/D:/Temp/";
  7.       URL destination = new URL(new URL(chemin) ,"image.jpg" );   
  8.       AppletContext ac = this.getAppletContext();
  9.       ac.showDocument(destination, "_blank" );
  10.     } catch (Exception e) {
  11.       e.printStackTrace();
  12.     }
  13.   }
  14. }


 
Merci d'avance :jap:


Message édité par Nim36 le 10-02-2005 à 09:00:43

---------------
We'll start to worry when the cynics start believing
mood
Publicité
Posté le 01-02-2005 à 10:27:24  profilanswer
 

n°968019
FlorentG
Unité de Masse
Posté le 01-02-2005 à 10:31:15  profilanswer
 

Et dans la console, y'a pas de message d'erreur ?
 
Aussi, la balise <applet> n'existe plus, faut utiliser <object> à la place...

n°968035
Nim36
Posté le 01-02-2005 à 10:38:47  profilanswer
 

FlorentG a écrit :

Et dans la console, y'a pas de message d'erreur ?
 
Aussi, la balise <applet> n'existe plus, faut utiliser <object> à la place...


Contenu de la console :  

Code :
  1. Plug-in Java(TM): Version 1.4.2_07
  2. Utilisation de la version JRE 1.4.2_07 Java HotSpot(TM) Client VM
  3. Répertoire d'accueil de l'utilisateur = D:\WINNT\Profiles\NAM
  4. Configuration du proxy : Configuration du proxy du navigateur
  5. ----------------------------------------------------
  6. c:   effacer la fenêtre de la console
  7. f:   finaliser les objets de la file d'attente de finalisation
  8. g:   libérer la mémoire
  9. h:   afficher ce message d'aide
  10. l:   vider la liste de chargeurs de classes
  11. m:   imprimer le relevé d'utilisation de la mémoire
  12. o:   déclencher la consignation
  13. p:   recharger la configuration du proxy
  14. q:   masquer la console
  15. r:   recharger la configuration des politiques
  16. s:   vider les propriétés système
  17. t:   vider la liste des threads
  18. v:   vider la pile des threads
  19. x:   effacer le cache de chargeurs de classes
  20. 0-5: fixer le niveau de traçage à <n>
  21. ----------------------------------------------------


J'ai utiliser le HtmlConverter.exe du JDK pour générer une autre page web avec <object>, et il y a exactement les mêmes comportements avec les même browsers
 


---------------
We'll start to worry when the cynics start believing
n°968038
FlorentG
Unité de Masse
Posté le 01-02-2005 à 10:39:38  profilanswer
 

Même pas un message d'erreur :/ Y'a même pas une petite croix rouge dans l'applet ? Ca bloque comme ça ?

n°968044
Nim36
Posté le 01-02-2005 à 10:42:54  profilanswer
 

FlorentG a écrit :

Même pas un message d'erreur :/ Y'a même pas une petite croix rouge dans l'applet ? Ca bloque comme ça ?


rien.... :pt1cable:  
Y'a pas la moindre croix rouge comme quand ça marche pas... :pt1cable:, donc ça marcherait ?


---------------
We'll start to worry when the cynics start believing
n°968047
FlorentG
Unité de Masse
Posté le 01-02-2005 à 10:45:07  profilanswer
 

Met des "System.err.println("Pouet" )' un peu partout pour voir s'il se passe quelque chose :D

n°968077
Nim36
Posté le 01-02-2005 à 10:58:45  profilanswer
 

Nouve code source :)  

Code :
  1. import java.applet.*;
  2. import java.net.*;
  3. public class test extends Applet {
  4.   public void init() {
  5. System.err.println("1" );
  6.     try {
  7. System.err.println("2" );
  8.       String path = "file:/D:/Temp/";
  9. System.err.println("3" );
  10.       URL destination = new URL(new URL(path) ,"image.jpg" );
  11. System.err.println("4" );
  12. System.out.println("URL = " + destination.getPath() );         
  13. System.err.println("5" );           
  14.       AppletContext ac = this.getAppletContext();
  15. System.err.println("6" );
  16.       ac.showDocument(destination, "_blank" );
  17. System.err.println("7" );
  18.     } catch (Exception e) {
  19. System.err.println("8" );
  20.       e.printStackTrace();
  21. System.err.println("9" );
  22.     }
  23. System.err.println("10" );
  24.   }
  25. }


 
Nouvelle console (aussi bien pour IE55 OK que Firefox Ko...):??:  

Code :
  1. Plug-in Java(TM): Version 1.4.2_07
  2. Utilisation de la version JRE 1.4.2_07 Java HotSpot(TM) Client VM
  3. Répertoire d'accueil de l'utilisateur = D:\WINNT\Profiles\NAM
  4. Configuration du proxy : Configuration du proxy du navigateur
  5. ----------------------------------------------------
  6. c:   effacer la fenêtre de la console
  7. f:   finaliser les objets de la file d'attente de finalisation
  8. g:   libérer la mémoire
  9. h:   afficher ce message d'aide
  10. l:   vider la liste de chargeurs de classes
  11. m:   imprimer le relevé d'utilisation de la mémoire
  12. o:   déclencher la consignation
  13. p:   recharger la configuration du proxy
  14. q:   masquer la console
  15. r:   recharger la configuration des politiques
  16. s:   vider les propriétés système
  17. t:   vider la liste des threads
  18. v:   vider la pile des threads
  19. x:   effacer le cache de chargeurs de classes
  20. 0-5: fixer le niveau de traçage à <n>
  21. ----------------------------------------------------
  22. 1
  23. 2
  24. 3
  25. 4
  26. URL = /D:/Temp/image.jpg
  27. 5
  28. 6
  29. 7
  30. 10


---------------
We'll start to worry when the cynics start believing
n°968081
FlorentG
Unité de Masse
Posté le 01-02-2005 à 11:02:32  profilanswer
 

T'es sûr de la String Path, qu'il n'y ait pas un ou deux '/' qui manque, style "file://" :??:

n°968115
Nim36
Posté le 01-02-2005 à 11:23:21  profilanswer
 

Code :
  1. file://


au lieu de  

Code :
  1. file:/


ça uniformise le comportement : ça ne marche plus non plus sur IE55... (donc, c'est moins bien qu'avant).
D'un autre coté, je suis pas un expert java, et il faut peut-être plein de '/' ailleurs  :??:  ou il préfère des '\\'  :??:  
 
Dans la console, aucun changement, si ce n'est pour l'URL

Code :
  1. URL = /Temp/image.jpg


---------------
We'll start to worry when the cynics start believing
n°968117
FlorentG
Unité de Masse
Posté le 01-02-2005 à 11:25:16  profilanswer
 

Hum... Je crois bien qu'il en faut 3 : file:///D:/Temp/

mood
Publicité
Posté le 01-02-2005 à 11:25:16  profilanswer
 

n°968153
Nim36
Posté le 01-02-2005 à 11:42:34  profilanswer
 

FlorentG a écrit :

Hum... Je crois bien qu'il en faut 3 : file:///D:/Temp/


3'/', ça a exactement le même comportement qu'1 seul '/' (IE55 OK, Firefox KO)
Et toujours rien d'anormal dans la console java...
:pt1cable:   :heink:  :??:  


---------------
We'll start to worry when the cynics start believing
n°968155
FlorentG
Unité de Masse
Posté le 01-02-2005 à 11:45:13  profilanswer
 

Et si tu construit ton URL comme ça :

URL destination = new URL(chemin + "image.jpg" );

   

n°968178
Nim36
Posté le 01-02-2005 à 12:12:33  profilanswer
 

FlorentG a écrit :

Et si tu construit ton URL comme ça :

URL destination = new URL(chemin + "image.jpg" );



euh...je suppose que tu veux dire

Code :
  1. String chemin="file:///D:/Temp/image.jpg";
  2. URL destination = new URL(chemin);


(car je vois pas de constructeur à 2 String en entrée...)
...
en utilisant ce code, j'ai de toute façon toujours le même problême (avec 1 ou 3 '/', toujours rien d'anormal dans la console car c'est encore le même trace, fonctionne toujours sous IE55 et toujours pas sous ff...)  :??:  :pt1cable:


---------------
We'll start to worry when the cynics start believing
n°968182
FlorentG
Unité de Masse
Posté le 01-02-2005 à 12:15:13  profilanswer
 

J'ai pas mis deux arguments, j'ai juste fait une concaténation (opérateur +) ;)
 
Sinon je vois pas...

n°968198
Nim36
Posté le 01-02-2005 à 12:28:07  profilanswer
 

FlorentG a écrit :

J'ai pas mis deux arguments, j'ai juste fait une concaténation (opérateur +) ;)
 
Sinon je vois pas...


Autant pour moi, j'ai lu trop vite... :jap:  
 
 :( sinon, bien sur, ça me donne toujours le même comportement que depuis le début  :(  :fou:  :heink:  
 
Merci quand même pour les idées :jap:  
peut-être que quelqu'un d'autre en aura d'autres, alors ? ;)


---------------
We'll start to worry when the cynics start believing
n°968250
patachou
Posté le 01-02-2005 à 14:01:03  profilanswer
 

Dans la javadoc, j'ai lu :
 

Citation :

An applet viewer or browser is free to ignore showDocument.


 
Ca vient pas de ça ton problème ?

n°968255
FlorentG
Unité de Masse
Posté le 01-02-2005 à 14:03:00  profilanswer
 

Ah ouais, c'est possible que ce soit ça :D

n°968312
Nim36
Posté le 01-02-2005 à 14:28:17  profilanswer
 

patachou a écrit :

Dans la javadoc, j'ai lu :
 

Citation :

An applet viewer or browser is free to ignore showDocument.


 
Ca vient pas de ça ton problème ?


 
:heink: Ca j'avais pas vu avant... :??:  
C'est tout à fait possible que ça vienne de ça...et ça ne m'arrange pas... :(
Il existe un autre moyen de visualiser un document depuis une applet java ?
 
 
Cela dit, je viens de tester l'applet localement et le code fonctionne (firefox ouvre bien une nouvelle fenêtre)...
 
J'ai aussi par erreur activer la console javascript de Ff et en ligne, il y a un "message"

Erreur de sécurité : le contenu situé à http://www.xxxxx.fr/test/test.html ne peut pas charger de données ou établir un lien vers file:///D:/Temp/image.jpg.


aussi bien depuis la page html "applet" (qui ne contient pas de javascript) que depuis la page converti avec le htmlConverter
 
Par contre, localement la console javascript reste vide
 
Quelqu'un sait ce que ça veut dire ?


---------------
We'll start to worry when the cynics start believing
n°968335
FlorentG
Unité de Masse
Posté le 01-02-2005 à 14:36:13  profilanswer
 

Si elle est signée, ça devrait marcher... Ou alors t'as pas mis les bons trucs de sécurité...

n°968401
Nim36
Posté le 01-02-2005 à 14:59:27  profilanswer
 

FlorentG a écrit :

Si elle est signée, ça devrait marcher... Ou alors t'as pas mis les bons trucs de sécurité...


 
Java, je maitrise déjà pas trop :sweat:
donc pour la sécurité, ça doit pas être ça non plus :) ... (En fait je pense que l'applet est signée correctement, car quelque soit le browser utilisé je peux télécharger correctement des fichiers sur le disque dur et écrire des informations dans la base de registre...)
 
pour la signature

Code :
  1. javac test.java
  2. rem keytool -genkey -keystore Boite -keyalg rsa -alias Signature -validity 3600 -keypass password -storepass password
  3. keytool -export -keystore Boite -storepass password -keypass password -alias Signature -file d:\\Test\\CertTest.crt
  4. jar cf0 test.jar *.class
  5. jarsigner -keystore Boite -storepass password -keypass password -signedjar sTest.jar test.jar Signature
  6. jarsigner -keystore Boite -certs -verify -verbose sTest.jar


 
Par la suite, quand j'ai vu que ça marchait pas sous IE60 et Ff, j'ai rajouté ça dans tous les fichiers java.policy (je sais pas  trop si c'est vraiment utile)


grant codeBase "http://www.xxxxx.fr/-" {
  permission java.security.AllPermission;
};


 


---------------
We'll start to worry when the cynics start believing
n°969561
Nim36
Posté le 02-02-2005 à 16:10:09  profilanswer
 

[:atlantis] Y'a d'autres moyens pour afficher une image (ou plus largement un fichier quelconque) depuis un applet que de passer par un showDocument   :??:
 
 
 :hello:  :??:


Message édité par Nim36 le 03-02-2005 à 12:09:21

---------------
We'll start to worry when the cynics start believing
n°970417
Nim36
Posté le 03-02-2005 à 12:09:53  profilanswer
 

[:albator7k] :??: [:atlantis]
Apparemment ça marcherait en partie avec le "truc" cité dans la discussion...
http://forum.hardware.fr/hardwaref [...] 3743-1.htm
(http://www.javaworld.com/javaworld [...] tip66.html)
 
Je ferais d'autres tests plus tard pour vérifier
Personne aurait une meilleure solution / une explication  ??? :jap:  :sweat:  
 
 :hello:
 
---------------------------------
 
 :fou:  :heink:  :sleep:  
Après des tests supplémentaires, la méthode "BrowserControl" (ci dessus) fonctionne correctement avec IE6.0 / Ff1.0 et NS7.02 (JRE 1.4.2) pour une applet signée  :love:  :D (sans avoir besoin de modifier un quelconque fichier policy)
 
Néanmoins, est ce que quelqu'un saurait pourquoi un simple "showDocument"  

  • ne fonctionne pas sous IE6.0
  • fonctionne correctement sous NS7.02
  • ne fonctionne pas sous Ff1.0 (en créant un message dans la console javascript) ?


Est ce vraiment du à "An applet viewer or browser is free to ignore showDocument." ??  
ou est ce qu'il y aurait un problême de café :??:  
 
 
 


Message édité par Nim36 le 09-02-2005 à 12:07:49

---------------
We'll start to worry when the cynics start believing
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Applet signée] problême ouverture de fichier [résolut mais...]

 

Sujets relatifs
parser un fichier xml en javaOuverture d'un site dans fenêtre sans bouton ni menu ?
Creation fichier excel a partir d'un txtProblème <span>
probleme avec sendAndLoad et tabulationRemplacer une ligne par une autre dans un fichier texte
pitit probleme avec un treeview[java] Probleme pour afficher une image
Problème include de fichier [résolu] 
Plus de sujets relatifs à : [Applet signée] problême ouverture de fichier [résolut mais...]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR