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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    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 expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    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 confirmé
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    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 confirmé
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    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 expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    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 confirmé
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    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

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