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

JWS Java Discussion :

Java Web Start problème pour l'écriture dans un fichier


Sujet :

JWS Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut Java Web Start problème pour l'écriture dans un fichier
    Bonjour à tous,

    J'ai un problème concernant le lancement d'une application JavaWebStart. Ayant précédemment réalisé plusieurs petites application en Java et JavaFX, j'arrivais à lancer le fichier jnlp que j'avais construit.
    Dans ma nouvelle application, je dois pouvoir lire dans des fichiers et écrire dans un fichier de log pour répertorier l'historique de mon application. Au départ, j'avais des messages comme quoi il il avait des problèmes d'accès i/o.
    Après avoir lu sur les forums, je me suis aperçu que cela venait d'un problème de sécurité car le jws ne pouvait pas accéder aux ressources locales sans que mes jar soit signés. Ainsi, j'ai signé mon jar de mon application ainsi que les jars contenant des bibliothèques externes que j'utilise.
    Là apparemment je n'ai plus d'exception quand le programme veut lire dans un fichier mais un problème pour écrire dans mon fichier log.
    Quelqu'un pourrait-il me renseigner un m'indiquer si il a une explication voire une solution à mon problème?
    D'avance merci.

    Système d'exploitation : Windows XP
    Navigateur : Firefox 3.0.13
    JVM : Java SE6u14
    JavaFX SDK : 1.2

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par yoyolepsy Voir le message
    Là apparemment je n'ai plus d'exception quand le programme veut lire dans un fichier mais un problème pour écrire dans mon fichier log.
    Quelqu'un pourrait-il me renseigner un m'indiquer si il a une explication voire une solution à mon problème?
    Etant donné que nous sommes au mois d'août et que tous nos devins sont partis en vacances, il va falloir que tu nous dise quelle erreur tu as, si tu veux qu'on aie une petite chance d'arriver à t'aider.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour tchize.
    Excuse moi effectivement j'ai oublié de préciser mon message d'exception. Avant de signer mes jars j'avais cette exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.AccessControlException: access denied (java.io.FilePermission nom_de_mon_fichier read)
    Maintenant j'ai cette exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.security.AccessControlException: access denied (java.io.FilePermission monfichier.log write)
    Avec "monfichier.log" mon fichier de log ou je veux écrire

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a part signer tes jars, est ce que tu as faire autre chose (création d'un fichier java policy ou autre). Et donne nous le stacktrace complet de l'exception.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    a part signer tes jars, est ce que tu as faire autre chose (création d'un fichier java policy ou autre). Et donne nous le stacktrace complet de l'exception.
    Non je n'ai que signé mes jars. J'ai lu quelque chose sur les fichier java.policy mais je n'ai pas compris exactement le principe. Dans mon fichier jnlp , j'ai ajouté "all-permissions" dans la bannière sécurity.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Donne nous le stacktrace complet. Comme tu as signé des librairies externe, as-tu vérifié qu'elles n'étaient pas déjà signées et, le cas échéant, as-tu bien retiré l'ancienne signature? Les libirairies jdbc de mysql, par exemple, sont fournies signées, ce qui pose problème (la signatoure doit utiliser la meme clé pour toute l'application)

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai signé mes jar avec l'outil keytool ainsi que jarsigner comme je l'ai lu sur ce site. En ce qui concerne le signature de mes jars, j'ai mis la même signature pour tous mes jars. Enfin, voici le stacktrace complet :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    java.security.AccessControlException: access denied (java.io.FilePermission logs\plugins.log write)
    	at java.security.AccessControlContext.checkPermission(Unknown Source)
    	at java.security.AccessController.checkPermission(Unknown Source)
    	at java.lang.SecurityManager.checkPermission(Unknown Source)
    	at java.lang.SecurityManager.checkWrite(Unknown Source)
    	at java.io.FileOutputStream.<init>(Unknown Source)
    	at java.io.FileOutputStream.<init>(Unknown Source)
    	at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
    	at org.apache.log4j.FileAppender.<init>(FileAppender.java:109)
    	at org.apache.log4j.DailyRollingFileAppender.<init>(DailyRollingFileAppender.java:196)
    	at pluginsmanager.PluginsManager.initLogger(PluginsManager.java:80)
    	at pluginsmanager.PluginsManager.<init>(PluginsManager.java:66)
    	at main.MainFX.javafx$run$(MainFX.fx:18)

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu essaie d'ouvrir en écritre un fichier directement depuis com.ausy.asisp.pluginsmanager.PluginsManager.<init>(PluginsManager.java:66)


    est-ce que ça passe? Si oui, je souconnerais un problème avec la signature de log4j (incomplète ou signature dupliquée). Comme j'ai dit, as-tu vérifier qu'aucune librairie n'avais pas déjà un signature? Il y a une commande de jarsigner pour retirer le signatures au préalable.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    j'ai utilisé la commande pour bien vérifier qu'aucun de mes jar étant signé au préalable et j'ai ensuite signé tous les jar avec la même signature

  10. #10
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Après plusieurs tests, il semblerait que j'arrive bien à écrire dans un fichier avec une jws. Il semblerait que le problème vienne de la librairie log4j. Je n'avais pas ce problème avec le projet de base en java. Serais-c un problèmme avec l'intégration de sources javafx? Ou la librairie log4j a-t-elle un comportement spéciale avec jws? D'avance merci

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a part si elle aurait une deuxième signature ou si elle serait mal signée, il n'y a pas de raison qu'elle aie pas les meme permissions que les autres jars.

  12. #12
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai vérifié elle n'avait pas de signature particulière d'avance. Elle possède la même signature que les autres jars.
    Je reste un peu perplexe car la librairie log4j semble pourtant être une bibliothèque assez standard de Sun.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Juste comme ca, tes fichiers javafx, ils sont compilés au vol ou sont compilé avant d'être packagé? tes fichiers javafx ont--ils été bien signés? Si tu crée un petite applicaiton de test sur base de tes jar signés, mais sans javafx, t'arrive à logguer? Pour que le code aie les droits d'accès, il faut que tous les stack soit signé avec la même signature, à l'exception des classes système.

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Mes fichiers javafx sont bien signés avec la même signature que mes autres fichiers dans les jars.

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai peut-être réussi à utiliser mon fichier de log mais malheureusement pour vérifier, j'aurais besoin de résoudre un dernier problème. Mon application doit pouvoir pour fonctionner utiliser des "plugins" qui se présentent sous forme de jars que je dois au fur et à mesure que je les ais construits placé dans un dossier plugins. Quand je lance l'application depuis eclipse, pas de problème, l'application arrive bien à lire les classes contenus dans le jar. Hors dès que je veux lancer mon application en jws, l'application n'arrive plus à lire mes classes.
    J'ai l'erreur suivante :

    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
     
    valeur de la premiere classe= 
    com.pluginexample.equipemnt.management_rule.ScheduleNOP
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/equipment/management_rule/ScheduleManagementRule
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at java.security.SecureClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.defineClass(Unknown Source)
    	at java.net.URLClassLoader.access$000(Unknown Source)
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at com.pluginsmanager.PluginsLoader.loadPlugins(PluginsLoader.java:90)
    	at com.pluginsmanager.PluginsManager.loadPlugins(PluginsManager.java:97)
    	at com.pluginsmanager.PluginsManager.<init>(PluginsManager.java:67)
    	at com.main.MainFX.<clinit>(MainFX.fx:18)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at com.sun.javafx.runtime.provider.GUIRuntimeProvider$1.run(Unknown Source)
    	at com.sun.javafx.tk.swing.SwingToolkit$StartupRoutine.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: com.equipment.management_rule.ScheduleManagementRule
    	at java.net.URLClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	... 34 more
    Auriez-vous une idée sur la ou les causes de ce problème?

    D'avance merci.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as visiblement oublié de package la classe com.equipment.management_rule.ScheduleManagementRule
    dans ton application webstart

  17. #17
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t'as visiblement oublié de package la classe com.equipment.management_rule.ScheduleManagementRule
    dans ton application webstart
    J'ai verifié, toutes mes classes sont là dans mon jar. J'ai même tracé le contenu de mon jar pour bien vérifier que les classes y étaient.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as bien inclu ce jar dans la liste des jars de javawebstart?

  19. #19
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t'as bien inclu ce jar dans la liste des jars de javawebstart?
    Bonjour, oui j'ai bien inclus ce jar avec la meme signature que les autres

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    On peux voir le JNLP? ainsi que le résultat de la commande sur le jar contenant la classe en question.

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

Discussions similaires

  1. Problème pour supprimer attribut dans un fichier XML
    Par Jb_One73 dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/02/2015, 10h08
  2. JAVA:Retour à la ligne lors d'écriture dans un fichier
    Par sarra2104 dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2012, 09h10
  3. Eclipse RCP / Java web start : problème de langue
    Par nhqnhq dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 02/12/2009, 18h47
  4. Problème avec Java Web start
    Par kenny6 dans le forum JWS
    Réponses: 6
    Dernier message: 12/09/2007, 17h10
  5. Module java web start pour NB 5.5
    Par FranT dans le forum NetBeans
    Réponses: 3
    Dernier message: 04/10/2006, 14h12

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