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

Struts 1 Java Discussion :

[1.3.5][DataSource] Utiliser une DS configurée dans le struts-config.xml [FAQ]


Sujet :

Struts 1 Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut [1.3.5][DataSource] Utiliser une DS configurée dans le struts-config.xml
    Bonjour,

    Voici mon problème: je n'arrive pas à accéder à SQL Server à partir d'un projet Struts.

    Au départ, le code suivant marche:

    (code dans une méthode d'une action)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQLServerDataSource ds = new SQLServerDataSource;
    ds.setUser = "olivier";
    ds.setPassword = "abcd";
    ds.setServerName = "localhost";
    ds.setPortNumber = "1433";
    ds.setDatabaseName = "cotations";
    con = ds.getConnection();
    Bon, c'est bien mais en puriste, on peut objecter que c'est moins bien que de rajouter une dataSource dans struts-config.xml.
    J'ai donc essayé et ça plante.
    Voici mon fichier xml:

    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
     
    ... 
    	<data-sources>
    <!-- configuration for commons BasicDataSource -->
      <data-source type="com.microsoft.sqlserver.jdbc.SQLServerDataSource" key="cotations">
    <set-property property="autoCommit" value="true"/>
    <set-property property="decription" value="DataSource - MysqlLocal"/>
    <set-property property="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <set-property property="maxCount" value="4"/>
    <set-property property="minCount" value="1"/>
    <set-property property="user" value="olivier"/>
    <set-property property="password" value="abcd"/>
    <set-property property="url" value="jdbc:sqlserver://localhost"/>
    </data-source>
    </data-sources>
    ...
    et je n'arrive pas à aller plus loin: la prochaine étape est je crois, dans l'action, de créer une dataSource en utilisant les infos dans struts-config.xml.
    J'ai essayé par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLServerDataSource ds = (SQLServerDataSource) servlet.getServletContext().getAttribute("org.apache.struts.action.DATA_SOURCE/cotations");
    mais cela ne marche pas: au moment d'établir la connexion, j'obtiens un message de référence nulle (donc ds ne pointe sur rien).A noter: la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Enumeration Coll;
    coll=servlet.getServletContext().getAttributeNames();
    ne renvoie pas d'URL finissant pas DATA_SOURCE...problème avec struts-config? Le URL renvoyées par getAttributeNames finissent par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jsp_classpath, MESSAGE, MODULE_PREFIXES, DEFINITIONS_FACTORY, STOP_ON_ERROR, VALIDATOR_RESOURCES, WELCOME_FILES, ACTION_SERVLET, REQUEST_PROCESSOR, tempdir, SERVLET_MAPPING, PLUG_INS, resources, MODULE.
    ...donc rien qui finisse par DATA_SOURCE...

    Voilà, j'ai tout dit.

    Les questions que je me pose:
    Faut-il modifier web.xml?
    Quelle est la syntaxe pour récupérer le dataSource?
    Où trouver la documentation (celle fournie avec le pilote JDBC pour Microsoft SQL Server ne m'a pas permis de m'en sortir)...


    lolveley.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonsoir,

    Pour ce genre de questions, il vaut mieux préciser la version de Struts

    Sans cette information, je te renvoie vers la javadoc de la dernière version de Struts qui prend en charge (DBCP deprecated ensuite) les DataSource, à savoir la 1.2.7

    avec dans ta classe Action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getDataSource(javax.servlet.http.HttpServletRequest request,
                                                 java.lang.String key)
    Ceci étant dit, il vaut mieux configurer une DataSource via JNDI
    Un bon article : http://christophej.developpez.com/tu...ee/pooltomcat/

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    Merci pour votre réponse.

    J'utilise la version 1.3.5 de Struts, et dans sa Javadoc je n'ai plus trouvé la méthode getDataSource. Si la méthode d'accès a été changée, connaissez-vous un lien vers la description de la nouvelle méthode?
    J'aimerais utiliser struts-config.xml plutôt que modifier les fichiers de Tomcat, cela me semble moins lourd, plus pratique.

    Merci,

    lolveley.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par Ricky81
    la dernière version de Struts qui prend en charge (DBCP deprecated ensuite) les DataSource, à savoir la 1.2.7

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    oui, mais c'est ambigu: la dernière version (la plus récente qui est d'ailleurs la 1.3.5 ) ou la dernière (et plus d'autre après ont utilisé les dataSources).
    Oui, j'ai douté...
    Bon, donc la 1.3.5 ne prend plus en charge les dataSources. Pourquoi?
    Par quoi est-ce remplacé? Où trouver des explications? Faut-il plutôt que je repasse à l' ancienne version?

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    J'avais bien dit la dernière version "qui prend en charge"

    Pourquoi ? tout simplement car ce n'est pas le boulot de Struts.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    Alors qu'est-ce qui est le mieux: créer une DS comme je l'ai montré ou utiliser Tomcat et server.xml?
    (est-ce le boulot de Tomcat?)

    lolveley.

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par olivier57b
    (est-ce le boulot de Tomcat?)
    Oui

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    OK, je vais lire un tuto sur developpez.com, concernant Tomcat.

    Merci,

    lolveley.

Discussions similaires

  1. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  2. [JAR][POLICE] Utiliser une police ttf dans un fichier jar
    Par Doc.Fusion dans le forum Général Java
    Réponses: 3
    Dernier message: 26/01/2005, 12h23
  3. [jre]utiliser une autre vm dans eclipse
    Par champion dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 02/07/2004, 11h21
  4. Réponses: 2
    Dernier message: 24/06/2003, 20h31

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