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 :

Erreur Java Console


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut Erreur Java Console
    Bonjour à tous j'ai une question bête car je ne maîtrise pas particulièrement les applets java mais j'aimerai savoir qu'est-ce qui peut expliquer d'une manière générale qu'une application java applet s'execute parfaitement dans son environnement de programmation et qu'elle puisse engendrer des erreur telles que des NullPointerException lorsqu'elle est exécuter à partir du navigateur WEB ?

    Pour ma part vous vous doutez bien que c'est le cas, mon applet fonctionne parfaitement sous eclipse mais lorsque je veux l'executer à partir de Firefox ou IE j'ai les erreurs suivantes dans la JavaConsole :

    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
    Exception in thread "Thread-117" java.lang.NullPointerException
    	at com.ibm.labeling.ui.JPanelPrintLabel$2.actionPerformed(JPanelPrintLabel.java:1110)
    	at javax.swing.JComboBox.fireActionEvent(Unknown Source)
    	at javax.swing.JComboBox.contentsChanged(Unknown Source)
    	at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
    	at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source)
    	at javax.swing.DefaultComboBoxModel.addElement(Unknown Source)
    	at javax.swing.JComboBox.addItem(Unknown Source)
    	at com.ibm.labeling.ui.JPanelPrintLabel.getJComboBoxStandard(JPanelPrintLabel.java:1380)
    	at com.ibm.labeling.ui.JPanelPrintLabel.getJPanelFilter(JPanelPrintLabel.java:780)
    	at com.ibm.labeling.ui.JPanelPrintLabel.getJPanelLabels(JPanelPrintLabel.java:749)
    	at com.ibm.labeling.ui.JPanelPrintLabel.initialize(JPanelPrintLabel.java:674)
    	at com.ibm.labeling.ui.JPanelPrintLabel.<init>(JPanelPrintLabel.java:92)
    	at com.ibm.labeling.ui.JMainPanel.printLabel(JMainPanel.java:60)
    	at com.ibm.labeling.tool.ClientManager.run(ClientManager.java:47)
    	at java.lang.Thread.run(Unknown Source)

    ou encore :

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Exception occurred during event dispatching:
    java.lang.ExceptionInInitializerError
    	at com.ibm.swat.password.cwa2.<clinit>(cwa2.java:68)
    	at com.ibm.labeling.ui.JDialogLogOn$2.actionPerformed(JDialogLogOn.java:238)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(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.pumpEventsForFilter(Unknown Source)
    	at java.awt.Dialog$1.run(Unknown Source)
    	at java.awt.Dialog$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.awt.Dialog.show(Unknown Source)
    	at java.awt.Component.show(Unknown Source)
    	at java.awt.Component.setVisible(Unknown Source)
    	at java.awt.Window.setVisible(Unknown Source)
    	at java.awt.Dialog.setVisible(Unknown Source)
    	at com.ibm.labeling.ui.MainJFrame$1.actionPerformed(MainJFrame.java:198)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(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.security.AccessControlException: access denied (java.util.PropertyPermission javax.net.debug read)
    	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.checkPropertyAccess(Unknown Source)
    	at java.lang.System.getProperty(Unknown Source)
    	at com.ibm.jsse.JSSEProvider$1.run(JSSEProvider$1.java:1)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at com.ibm.jsse.JSSEProvider.<clinit>(JSSEProvider.java:25)
    	... 58 more

  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 : 45
    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
    La cause mère est là:

    Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission javax.net.debug read)



    Ensuite, à partir de là, si l'exception n'a pas été gérée correctement, t'as eu des bout de code d'initialisaiton qui ont pas été exécuté, t'as des null qui restent.

    En pratique, il ne faut pas perdre de vue que les applets ont un accès limité au système. Ca inclu:
    1. Pas d'accès aux properties système
    2. PAs d'accès au système de fichier
    3. Pas d'accès réseau

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    merci tchize mais d'où peut provenir ce problème d'access denied étant donné que dans mon code je ne cherche pas à accèder aux propriétés systèmes ni au système de fichier ?

    En revanche en ce qui concerne l'aspect j'ai une application serveur qui tourne, mon client (dont il est le cas ici) envoie des messages à ce serveur sous forme d'ObjectOutputStream. Le server effectuedes requêtes sur une base de données et retourne la réponse au client sous forme de message récupéré grâce à un ObjectInputStream.

    On ne peut pas faire cela avec une applet ???

  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 : 45
    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'accès réseau est limité, uniquement possible entre l'applet et le serveur qui a émis l'applet. Donc si la comm réseau se fait avec le meme serveur que celui sur lequel se trouve la page web, aucun soucis. Le reste interdit sans privilège.

    Pour ce qui est de ton exception, il suffit de lire le stacktrace pour voir d'ou viens l'erreur. Visiblement c'est une librairie que tu utilise qui n'est pas faite pour tourner dans une sandbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	at com.ibm.swat.password.cwa2.<clinit>(cwa2.java:68)
    	at com.ibm.labeling.ui.JDialogLogOn$2.actionPerformed(JDialogLogOn.java:238)
    Note qu'il est toujours possible de contourner les limitation via la signature de l'applet et avec l'accord de l'utilisateur, mais si c'est possible d'éviter çà, autant le faire.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Je te confirme que l'application serveur sera sur le même poste que la page web qui lancera l'applet et c'est pour l'instant de toute façon le cas puisque j'execute le tout en local sur ma machine (serveur, base de données, pageweb applet).

    Ceci n'explique donc pas pourquoi j'ai ce problème d'access denied ...

    Ensuite quand tu parle de sandBox a quoi fais-tu allusion ?

  6. #6
    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 : 45
    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
    je fais allusion à la zone restreinte dans laquelle le plugin java exécute l'applet, zone dans laquelle il est interdit d'accéder aux system properties car "ce qui viens d'une page web n'a aucune raison d'avoir accès à des informations privées". J'ai mentionné le bout de code que tu dois regarder. Ton problème à la base, viens de là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    com.ibm.jsse.JSSEProvider.<clinit>(JSSEProvider.java:25)
    µCe bout de code fait un truc interdit, à savoir accéder à System.getProperty. La première chose à faire est donc de corriger çà.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2015, 14h03
  2. Eclipse erreur : java.lang.OutOfMemoryError: Java heap space
    Par sderecourt dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/04/2006, 11h28
  3. [My SQL 5.0 Win 32]Erreur mysqld --console
    Par Jean_Benoit dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/01/2006, 07h16
  4. Réponses: 16
    Dernier message: 10/01/2006, 22h02
  5. Réponses: 5
    Dernier message: 12/12/2005, 13h13

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