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 :

[Applet]Connexion base de données (socket)


Sujet :

Applets Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 104
    Points : 44
    Points
    44
    Par défaut [Applet]Connexion base de données (socket)
    rebonjour,

    mon application est un applet swing intégré dans une page HTML
    mon application est hebergé sur un serveur Web A qui interroge un serveur DB B

    lorsque moi je l'exécute, ça marche
    mais lorsque qq'un d'autre l'utilise ça ne marche pas

    la particularité de cet utilisateur est qu'il n'a pas les mêmes droits que moi. d'ailleurs, je me demande de quels droits a-t-il besoin o minimum

    par ailleurs, pouvez-vous me confirmer que la connexion vers la DB utilisée par cet utilisateur lambda est la même que la mienne
    dans le code, elle est du type
    jdbc:microsoft:mssqlserver://serveur:1433 ...
    si, oui je ne comprend pas pourquoi ça ne marche pas pour elle,
    elle a un message énorme du type
    Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
    at org.qualipharma.components.JPsPanel.setFields(JPsPanel.java:61)
    at org.qualipharma.components.JPsPanel.updateFields(JPsPanel.java:71)
    at org.qualipharma.bph.JBPHLight.updateBPHLight(JBPHLight.java:188)
    at org.qualipharma.bph.JBPHLight.actionPerformed(JBPHLight.java:174)
    at javax.swing.JTextField.fireActionPerformed(Unknown Source)
    at javax.swing.JTextField.postActionEvent(Unknown Source)
    at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
    at javax.swing.SwingUtilities.notifyAction(Unknown Source)
    at javax.swing.JComponent.processKeyBinding(Unknown Source)
    at javax.swing.JComponent.processKeyBindings(Unknown Source)
    at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(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.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
    késako : : :

    merci aux généreux

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    euh , à voir le message , ca semble meme pas un problème de droit ou d'acces à la base, A la vue du message c'est un object qui est à null.
    Tu arrives savoir lequel ? c'est peut etre une question de jeux de données que l'autre personne utilise et pas toi qui en est la cause.

    enfin , je dis ca à tout hasard.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    lorsque moi je l'exécute, ça marche
    mais lorsque qq'un d'autre l'utilise ça ne marche pas
    Quel est le contexte d'utilisation : toi en client léger à partir d'un poste banalisé (de même type que tout autre utilisateur) ou tu testes sur un des serveurs ?

    Cela ressemble pas mal à un problème de sécurité, soit au niveau du poste client (blocage par le firewall du poste client dans le cas de XP par exemple) soit entre le poste client et le serveur DB : présence d'un firewall qui n'ouvre pas ce port, violation de contraintes de sécurité du browser, ... ?

    Je pense qu'il faut chercher dans cette direction, sinon dis-nous en un peu plus.

    Jacques Desmazières

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 104
    Points : 44
    Points
    44
    Par défaut
    il y a en tout 3 postes concernés:

    1° le serveur DB

    2° le serveur Web

    3° le poste client

    le serveur DB et le serveur Web sont sur un même réseau, donc pas de firewall
    le poste client passe par le firewall pour atteindre le serveur Web

    quand j'y regarde de plus près dans mon code, il semble que le NullPointer de mon erreur s'explique par le résultat nul que retourne ma requête

    donc si je comprends bien, pour que ça marche pour le client, il faut nécessairement qu'il ai le port de mon DB (par défaut 1433) ouvert ?

    je me trompe ?
    sinon, quelle est l'alternative plus "secure" que je dois utiliser ?
    on m'a déjà parlé de spring remote, est-ce tout ce qui existe comme alternative simple et efficace ?

    merci Messieurs

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 104
    Points : 44
    Points
    44
    Par défaut
    je me demande si en me servant de la technologie M2VC, je n'aurai plus ce pb

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    donc si je comprends bien, pour que ça marche pour le client, il faut nécessairement qu'il ai le port de mon DB (par défaut 1433) ouvert ?
    tu as tout compris. En général seul HTTP sur le port 80 (et HTTPS sur 443) sont ouverts dans les firewalls.

    quelle est l'alternative plus "secure" que je dois utiliser ?
    L'idéal serait d'avoir un service d'accès au données en HTTP, donc par exemple développer un point d'entrée sur ton Web (servlet) qui exécute les requêtes sur ton serveur DB. Donc pour accéder aux données, tu passes par le serveur Web, qui lui exécute les ordres JDBC. Gros avantage de cela : tu passes les firewalls et surtout tu ne donnes pas accès à ta base de données, son url n'étant pas connues du client. Par contre exposer un service exécutant des ordres sql directement expose ta base de données

    Il existe peut être d'autres alternatives mais là je ne vois pas

    Jacques Desmazières

  7. #7
    Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 104
    Points : 44
    Points
    44
    Par défaut
    mais le pb, c'est que actuellement la techno, c'est du applet

    par ailleurs, je viens de découvrir qqes articles sur les webservices
    et je me demande si un webservice ne serait pas une bonne solution ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    je me demande si un webservice ne serait pas une bonne solution ?
    C'est en effet une des possibilités. Mais si tu as des contraintes de sécurité (application sur le net, ...) attantion aux services exposés

    Jacques Desmazières

  9. #9
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Ayant le même soucis, je suis tombé sur ce post. Pour l'instant mon applet interroge mysql sur le port 3306, et pour éviter les problèmes de firewall ainsi que de sécurité, je voudrais passer en 3-tiers, avecun service web en REST.



    Mais dans un premier temps, juste éviter les firewall serait déjà pas mal, et j'avais songé à mettre Mysql sur un serveur propre écoutant le port 80.

    Or tu dis que le firewall laisse HTTP sur 80, cela sous-entend t-il qu'il bloquerait MySQL sur 80?

Discussions similaires

  1. [D7] : Socket connexion base de données paradox
    Par juju1988 dans le forum Débuter
    Réponses: 13
    Dernier message: 04/05/2011, 15h02
  2. Réponses: 9
    Dernier message: 20/01/2006, 12h04
  3. [Tomcat][Oracle] connexion base de donnes debutant....
    Par yogz dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 16/07/2004, 13h32
  4. [XMLRAD] Connexion Base de données Informix
    Par clisson dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/01/2003, 13h46
  5. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22

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