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] [Applet] Connexion à Oracle depuis une applet


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 14
    Points
    14
    Par défaut [JDBC] [Applet] Connexion à Oracle depuis une applet
    Bonjour,

    Je vais encore sortir un problème récurrent mais je n'ai pas trouvé de solution qui a fonctionné pour moi à l'heure actuelle. Mon applet se connecte à une base Oracle pour récupérer et afficher des informations. Sur l'applet viewer, j'ai tous les droits et permissions nécessaires, donc la connexion se passe bien. Sur un navigateur, l'exception suivante se lève :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    java.security.AccessControlException: access denied (java.util.PropertyPermission oracle.jserver.version 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 oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:433)
    	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at java.sql.DriverManager.getConnection(Unknown Source)
    	at ResteAFaire.start(ResteAFaire.java:69)
    	at sun.applet.AppletPanel.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Ce qui est normal car les applets sont "enfermés" dans la sandbox. J'ai vu qu'il y avait plusieurs solutions : modifier le fichier policy, signer l'applet ou créer une servlet qui se chargerait de la connexion. Je précise que c'est un projet pour une entreprise cliente, pas un projet personnel, donc je ne peux pas tout me permettre Pour la servlet ce n'est pas possible, on n'a pas prévu dans le contrat de faire installer Tomcat. Pour le fichier policy, il faut le changer sur toutes les machines d'après ce que j'ai compris, pas faisable non plus. J'ai donc décidé de signer l'applet. Alors l'applet est effectivement signée, mais malgré cela, même lorsque j'ai cliqué sur exécuter, la même exception se lève !
    J'ai découvert ensuite Java Web Start. Les contraintes sont les mêmes que pour les applets, à savoir que la sandbox limite les accès aux ressources. J'ai donc modifié (très rapidement, la conversion était super simple, faite en quelques minutes) mon applet pour la transformer en application. J'ai donc créé mon fichier JNLP, j'ai signé l'application pour lui donner les permissions requises et ça marche !!! Alors que pour l'applet ça ne marche pas, je ne comprends pas, pourtant les limitations sont les mêmes ! Je ne comprends pas. Mon chef voudrait plutôt que le programme soit une applet, donc je suis un peu coincé.
    Quelqu'un saurait-il d'où vient mon problème ? Avez vous besoin que je poste du code ?

    Merci d'avance pour votre aide !

    PS : Lors de la création du fichier JNLP, je n'ai pas utilisé le protocole HTTP pour accéder à mon fichier jar mais le protocole FILE, je sais que d'habitude il faut toujours faire suivre le nom du protocole par "://" mais pour file, il fallait rajouter un troisième slash, ce que je ne savais pas et qui m'a fait perdre un temps fou à chercher d'où venait l'erreur. Quelqu'un pourrait m'expliquer pourquoi il fallait 3 slashes au lieu de 2 ? Cette question est juste pour ma culture personnelle, mon problème ci-dessus est prioritaire

    Bonne journée à tous !

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    En fait pour file c'est bien :// , le troisième / consistant au début de l'adresse du fichier dans le système (java utilise une notation se rapprochant de celle d'unix), par contre si tu veux récupérer un fichier sur internet ce sera bien file://www.xxx.com/fichier.test

    Pour ce qui précède, faut que e réfléchisse, je ne vois pas pour le moment.

  3. #3
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    J'y ai repensé ce week-end et j'ai trouvé la solution. En fait, lorsque j'ai créé mon JNLP, j'ai lu qu'il fallait aussi signer le pilote ODBC, ce que j'ai fait et ça fonctionne. J'avais oublié de tester le pilote signé avec l'applet et en fait c'était ça qui n'allait pas. J'utilisais le pilote signé avec l'application lancée avec JWS et pas l'applet. Je viens de tester ce matin. Problème résolu

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

Discussions similaires

  1. connexion à une servlet depuis une applet
    Par amine84 dans le forum Applets
    Réponses: 1
    Dernier message: 24/09/2008, 13h09
  2. Lister le contenu d'un dossier depuis une applet
    Par faocode dans le forum Applets
    Réponses: 1
    Dernier message: 11/05/2007, 10h05
  3. [applet] créer un fichier depuis une applet.
    Par BouB dans le forum Applets
    Réponses: 12
    Dernier message: 02/04/2007, 06h45
  4. Appeler une Applet ou servlet depuis une classe java
    Par oussam dans le forum Applets
    Réponses: 2
    Dernier message: 04/07/2006, 13h58
  5. Télécharger un fichier depuis une applet
    Par doudblast dans le forum Applets
    Réponses: 4
    Dernier message: 08/03/2006, 16h17

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