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

Java EE Discussion :

Configurer sa DataSource dans le code


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Configurer sa DataSource dans le code
    Bonjour à tous.

    J'ai un problème, et je ne sais pas très bien comment l'exprimer (a voir, le titre n'est pas très parlant).
    Quoi qu'il en soit, je souhaiterais configurer ma datasource, je m'explique :
    Je suis alternant, j'ai un projet dans mon entreprise, et pour des raisons de confidentialité, je ne pourrai presque pas montrer de code complet.

    D'habitude, j'utilise un composant (sur lequel je n'ai pas la main) pour effectuer mes accès à une BDD Oracle 10.g.
    Ce composant est utilisé par des applications Web, qui tournent sur un serveur JBOSS 4.2.2.
    Mon application à moi tourne sur un serveur JBOSS AS 7.1.1. J'ai configuré mes datasources dans mon JBOSS avec Oracle. J'ai du rajouter la clause suivante dans la configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <new-connection-sql>ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'</new-connection-sql>
    En effet, il fallait que j'utilise un format par défaut car le "to_date" n'est pas utilisé dans le composant d'accès à la BDD.

    Maintenant, dans mon appli, je lance des tests unitaires avec Junit, et c'est la que ça plante. En effet, avec Junit, j'ai du faire persister ma datasource manuellement, de cette façon :
    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
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
    				"org.apache.naming.java.javaURLContextFactory");
    		System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
     
    		ic = new InitialContext();
     
    		try {
    			ic.createSubcontext("java:");
    			ic.createSubcontext("java:comp");
    			ic.createSubcontext("java:comp/env");
    			ic.createSubcontext("java:comp/env/jdbc");
    		} catch (Exception e) {
     
    		}
    			// Construct DataSource
    			OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
    			...
    try {
    				ic.bind("java:comp/env/jdbc/pcsadb", ds);
    			} catch (Exception e) {
    			}
    		}
    Ne faite pas attention au try_catch... c'est pas propre, mais j'ai mes raisons (je pourrais vous le dire si vous me le demandez)
    Et donc, avec ceci, j'arrive à me connecter à ma BDD, mais je perd la clause :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <new-connection-sql>ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'</new-connection-sql>
    qui est dans mon JBOSS7.

    Ma question est donc la suivante : Comment faire pour qu'en JAVA, je lance une requête par défaut à chaque nouvelle connexion ?
    J'espère avoir été claire, si non, demandez moi plus d'informations.
    J'ai vraiment besoin d'aides, car là c'est le seul point qui me pose soucis.

    Merci d'avance

    Cordialement.

    Kyuubii_74

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Points : 399
    Points
    399
    Par défaut
    Bonjour,

    ta problématique semble lié à ton test, je vais donc répondre la chose suivante:
    Une fois que tu as instancé ta PoolDataSource, écris le bout de code qui lance l'opération SQL de configuration de ton NLS_DATE_FORMAT, puis donne le contrôle à ton module.
    Puisque ta datasource est une PoolDataSource, elle va réutiliser la connexion physique à ta BDD Oracle, et donc ça sera transparent pour ton module d'accès.

    Cordialement,
    Sébastien

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Bonjour.

    Merci à toi de m'aider.
    Si j'ai bien compris, je dois créer ma connection, puis faire ma requête, et enfin faire le bind ?

    voila ce que j'ai fait, mais j'ai toujours le même problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
    			...
    Connection connection = ds.getConnection();
    Statement st = connection.createStatement();
    st.execute("ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'");
    st.close();
    connection.close();
    try {
    	ic.bind("java:comp/env/jdbc/pcsadb", ds);
    } catch (Exception e) {}
    La requête n'a pas été prise en compte.

    Comment ça ce fait ? Est-ce ça que tu pensais faire ?

    Merci d'avance.

    Cordialement

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/10/2014, 14h30
  2. Réponses: 1
    Dernier message: 09/04/2011, 07h58
  3. Configuration dataSource dans Jetty 7
    Par robert.tari dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 18/08/2010, 11h11
  4. Problème de configuration de datasources via JNDI dans tomcat
    Par flo_rian dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/06/2009, 10h21
  5. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17

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