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

JDBC Java Discussion :

JDBC et applet


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut JDBC et applet
    Bonjour à tous.

    J'ai créé un programme permettant de me connecter à une base de données créer via PostgreSQL.
    J'ai télécharger le driver et je l'ai mit dans le dossier lib/ext, et tout fonctionne très bien, les valeurs sont modifiées dans la base de donnée.

    Hors, après avoir créé un applet et l'avoir intégrer dans une page HTML, les valeurs ne sont plus modifiées.

    Dois-je mettre mon driver dans un autre endroit ? (dans le ClassPath par exemple ?)

    Ou s'agit-il d'autre chose ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Précisez...
    Pouvez-vous me montrer à quoi ressemble votre implémentation HTML pour votre applet ?
    Est-ce que vous avez testez votre applet via HTML ou via File en locale ?
    Pour ce qui est de l'endroit où vous devez placer votre jar pour Postgresql, c'est tout simplement de préférence dans le même dossier que votre fichier HTML tout en adaptant les paramètres de votre balisage <APPLET> en ajoutant une virgule derrière le jar de votre applet, suivie du jar postgresql.

    Quoi qu'il en soit, si vous réalisez une applet, c'est dans le but de la mettre en ligne. Hors, par principe de sécurité, le code java est limité dans la portée de ses actions lorsqu'il évolue par le biai du Plugin HTML. Bref, on peut toucher à tout avec le langage java, donc dés que l'on veut accéder à une ressource dite système, comme le réseau, le disque dur local ou un quelconque autre périphérique locale, le code java traditionnel ne peut pas le faire. Pour y arriver, il doit se plier aux rigueur de la signature de code qui permet de déclencher l'apparition d'un message de validation à l'utilisateur qui l'invite à autoriser l'execution d'un code qui a potentielement la capacité de faire ce qu'il veut sur sa machine et l'invite aussi à vérifier qu'il connaît bien l'auteur du code avant de le faire en présentant un certificat doté d'une signature numérique permettant d'identifier l'auteur d'un code de manière sûre et unique. C'est seulement après validation du certificat par l'utilisateur que le code est autorisé à s'exécuter. Dans le kit de developement java de sun, vous trouverez un utilitaire bien utile pour ça (HtmlConverter.exe), accompagné de toute la documentation nécéssaire sur leur site pour apprendre à signer un code d'applet et ainsi avoir les "mêmes" droits qu'une véritable application.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour.

    Voici mon implémentation HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <applet name="monapplet" codebase="." code="Fenetre.class" height="400px" width="600px" archive="applet.jar">
    				<param name="applet" value="test applet">
    			</applet>
    Comme vous me l'avez indiqué, j'ai ajouter mon driver après mon jar, ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <applet name="monapplet" codebase="." code="Fenetre.class" height="400px" width="600px" archive="applet.jar, postgresql-8.4-701.jdbc3.jar">
    				<param name="applet" value="test applet">
    			</applet>
    Je travail actuellement avec un site et une base de données en local, mais plus tard ils seront sur un site web.

    Après avoir ajouté le driver après mon jar dans ma balise <applet> je ne suis toujours pas connecté à ma base de donnes.

    Pour ce qui est de l'Html Converter.exe, est-ce le seul moyen afin de pouvoir me connecter à ma base de données ?

  4. #4
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Ok, poursuivons...
    Il ne faut pas se contenter d'ajouter le jar de votre driver dans la déclaration de la balise APPLET, il faut aussi copier le fichier postgresql-8.4-701.jdbc3.jar au même endroit que votre fichier applet.jar. Si vous avez pris soins de faire cela, alors il faudrait relever les erreurs. Je ne sais pas comment vous travaillez, avec EDI ou à la main. Bref, lorsque votre applet s'execute dans votre navigateur, demandez l'affichage de la console java. C'est dans cette console que se déroule les sorties standard telle system.out...
    Ces erreurs devraient permettre de comprendre ce qui ce passe.
    Dernière chose, votre fichier HTML, vous l'ouvrez localement, ou vous l'avez mis dans un dossier de serveur Web puis vous avez tapez une URL du type localhost ?
    Pour faire simple, l'adresse dans votre navigateur s'affiche-t-elle sous la forme http://.... ou file:....

    Pour ce qui est de HTMLConverter, c'est un simple utilitaire fait pour se simplifier la vie. En effet, l'intégration d'une APPLET dans une page Web ne se fait pas de la même manière celon le navigateur utilisé pour l'exécuter. avec IE, on utilise basiquement la balise APPLET, mais cette dernière n'est pas reconnue par Firefox par exemple. Pour ce dernier, il faut décliner l'applet dans un balisage OBJET EMBED je crois. Et si on veut implémenter son applet pour qu'elle fonctionne dans les deux cas, il faut jongler avec le codage HTML en s'appuyant sur le fait que les balises non reconnue ne sont généralement pas affichées et totalement ignorées. Vous l'avez compris, ce n'est pas si simple... c'est maintenant qu'intervient HTMLConverter. Il vous suffit de créer vous-même la page HTML basique, avec un balisage APPLET standard. Une fois le fichier HTML créé, lancez HTMLConverter et faites lui traiter votre fichier. En sortie, vous aurez un nouveau fichier avec tout le balisage necéssaire pour vous assurer la parfaite intégration de votre applet dans tous les navigateurs supportant Java, avec en prime, le déclenchement de l'installation automatique d'une jvm sur l'hôte si necéssaire. jvm dont vous pouvez contrôler la version, l'origine, bref, tout pour faire bien les choses sans se prendre la tête.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    J'avais en effet déjà copier le driver au même endroit que mon applet.jar.
    Pour ce qui est de l'adresse dans mon navigateur, c'est file://...

    Voici l'affichage des erreurs en console

    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
    71
    72
    73
    74
    75
    76
    77
    78
     
    org.postgresql.util.PSQLException: Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.
    	at org.postgresql.Driver.connect(Driver.java:282)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at Connect.main(Connect.java:21)
    	at CarreMagique.majBaseDeDonnee(CarreMagique.java:295)
    	at PanneauBouton.actionPerformed(PanneauBouton.java:39)
    	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.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.net.SocketPermission 127.0.0.1:5432 connect,resolve)
    	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.checkConnect(Unknown Source)
    	at sun.plugin2.applet.Applet2SecurityManager.checkConnect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at java.net.Socket.<init>(Unknown Source)
    	at org.postgresql.core.PGStream.<init>(PGStream.java:62)
    	at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
    	at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
    	at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
    	at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
    	at org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24)
    	at org.postgresql.Driver.makeConnection(Driver.java:393)
    	at org.postgresql.Driver.connect(Driver.java:267)
    	... 29 more
    Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
    	at CarreMagique.majBaseDeDonnee(CarreMagique.java:302)
    	at PanneauBouton.actionPerformed(PanneauBouton.java:39)
    	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.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)
    La première erreur se situe au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Connection conn = DriverManager.getConnection(url, user, passwd);
    Le nom d'utilisateur et le mot de passe sont exact, pour l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String url = "jdbc:postgresql://localhost:5432/selectiondetection";

    Pour ce qui est de HTMLConverter, je comprend mieux les enjeux grâce à votre explication, merci.

  6. #6
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Ok...
    Êtes-vous sûr d'avoir donné des droits de connexions locaux à votre utilisateur au niveau de votre base de données ? Cet utilisateur doit-il réelement fournir un mot de passe pour se connecter ?
    Personnellement, je ne connaît postGresql que de nom. Personnellement, j'utilise MySQL, mais là n'est pas la question. Quoi qu'il en soit, au regard de l'erreur, c'est votre base qui vous interdit la connexion tout simplement, pas un plantage de votre code.

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    J'ai laissé l'ensemble des paramètres par défaut.
    Pour ce qui est du mot de passe, oui je doit m'identifier afin d'accéder à ma base de données.

    Je vais tenter de parcourir les paramètres afin de donner les droits de connections à l'utilisateur.

Discussions similaires

  1. Probléme JDBC et Applet
    Par t-djo dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 06/06/2008, 16h00
  2. [debutant] jdbc et applet
    Par tenderstoune dans le forum JDBC
    Réponses: 5
    Dernier message: 10/02/2008, 22h26
  3. [JDBC] Acces refusé a mysql avec applet
    Par romuluslepunk dans le forum Applets
    Réponses: 30
    Dernier message: 19/04/2006, 17h49
  4. [Jdbc Odbc][Applet]Message d'erreur
    Par Jean Claude90 dans le forum JDBC
    Réponses: 4
    Dernier message: 31/10/2005, 09h51
  5. Réponses: 7
    Dernier message: 01/07/2005, 07h43

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