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 :

Comment utiliser une datasource JNDI avec JDBC?


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 60
    Points
    60
    Par défaut Comment utiliser une datasource JNDI avec JDBC?
    salut,

    j'ai une datasource defini via JNDI sous mon jboss et je me propose de l'utiliser via JDBC a partir d'une classe...comment je peux le faire afin que mes requetes puissent fonctionner ?


    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
     
     
    <local-tx-datasource>
        <jndi-name>MyDS</jndi-name>
        <connection-url>jdbc:oracle:thin:@test</connection-url>
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        <user-name>user</user-name>
        <password>pwd</password>
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
     
        <min-pool-size>4</min-pool-size> 
        <max-pool-size>6</max-pool-size> 
        <blocking-timeout-millis>5000</blocking-timeout-millis> 
        <idle-timeout-minutes>4</idle-timeout-minutes> 
      </local-tx-datasource>


    merci

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Pour récupérer une connexion depuis ta DataSource, il faut la "lookuper" et faire un getConnection.

    Un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Properties ppt = new Properties();
    ppt.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    ppt.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
    ppt.put("java.naming.provider.url", "localhost:1099");
     
    InitialContext ctx = new InitialContext(ppt);
     
    DataSource ds_ora = (DataSource) ctx.lookup("java:MyDS");
     
    Connection cnx = null;
    cnx = ds_ora.getConnection();
    Ensuite, ça marche comme une connexion JDBC directe (statements, resultsets, ...)

  3. #3
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par DevTeam_ Voir le message
    Pour récupérer une connexion depuis ta DataSource, il faut la "lookuper" et faire un getConnection.

    Un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Properties ppt = new Properties();
    ppt.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    ppt.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
    ppt.put("java.naming.provider.url", "localhost:1099");
     
    InitialContext ctx = new InitialContext(ppt);
     
    DataSource ds_ora = (DataSource) ctx.lookup("java:MyDS");
     
    Connection cnx = null;
    cnx = ds_ora.getConnection();
    Ensuite, ça marche comme une connexion JDBC directe (statements, resultsets, ...)

    ca me genere une exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Cannot instantiate class: org.jnp.interfaces.NamingContextFactory

  4. #4
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par KING_OF_GRACELAND Voir le message
    ca me genere une exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Cannot instantiate class: org.jnp.interfaces.NamingContextFactory
    En effet l'erreur precedente est du a un jar qui manquait c'est regle par contre voiçi ce que j'ai comme erreur actuelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Failed to retrieve stub from server 192.168.0.150:1100 [Root exception is java.io.StreamCorruptedException: unexpected block data]

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Oui, alors je t'ai en effet mis ce qui correspond à ma config ici, mais il faut adapter à ton install JBoss

  6. #6
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par DevTeam_ Voir le message
    Oui, alors je t'ai en effet mis ce qui correspond à ma config ici, mais il faut adapter à ton install JBoss
    peux tu m'ecliarer plus stp? quelel config ou bien ou je peux trouver ce qu'il faut pour les parametres que tu as fournis!

    merci

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Est-ce que le serveur JBoss est sur ton poste ? Sur quel OS tourne-t-il ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2013, 20h41
  2. Réponses: 0
    Dernier message: 17/02/2011, 14h40
  3. Comment utiliser une base FireBird avec Delphi5
    Par cmali67 dans le forum Bases de données
    Réponses: 8
    Dernier message: 24/03/2009, 00h37
  4. Réponses: 15
    Dernier message: 23/03/2009, 16h07
  5. comment utiliser une library C avec g++
    Par pichouss dans le forum C++
    Réponses: 4
    Dernier message: 22/05/2008, 18h08

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