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

Spring Java Discussion :

passage de paramètres username et password [Framework]


Sujet :

Spring Java

  1. #21
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut Access denied for user 'Alef [setter]'@'localhost' (using password: YES)
    Après avoir procédé à la modif de certaines variables il m'affiche un nouveau type de msg d'erreur
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'Alef [setter]'@'localhost' (using password: YES))
            at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
            at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
            at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
            at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)
            at mis.cinq.dao.DaoSpringJdbc.getAllNatures(DaoSpringJdbc.java:56)
            at mis.cinq.service.ServiceSpringJdbc.getAllNatures(ServiceSpringJdbc.java:44)
            at mis.cinq.view.TestSpringJdbc.main(TestSpringJdbc.java:48)
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'Alef [setter]'@'localhost' (using password: YES))
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
            at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
            at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
            at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
            ... 6 more
    Caused by: java.sql.SQLException: Access denied for user 'Alef [setter]'@'localhost' (using password: YES)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
            at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
            at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
            at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
            at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
            at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
            ... 9 more
    Java Result: 1
    BUILD SUCCESSFUL (total time: 11 seconds)
    Mais quand je fige les valeurs de username et password la connexion passe.
    Apparamment les bonnes valeurs ne sont pas retournées vers le bean
    Je voudrais poser une petite question: le setter permet t'il de:
    1- renseigner les variables de la classe à partir de celles du bean
    ou
    2-il renseigne le bean à partir des variables de la classe.
    Si c'est le cas 1 c'est que je suis en brousse car moi c'est le cas 2 qui m'interesse

  2. #22
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    j'ai de nouveau modifié le fichier contexte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    		   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		   <property name="url" value="jdbc:mysql://localhost:3306/gestcar" />
    		   <property name="username">
                   <bean id="username" class="mis.cinq.connexion.ConnectionDialog" factory-bean="dataSource" factory-method="getUsername"/>
               </property>
               <property name="password">
                   <bean id="password" class="mis.cinq.connexion.ConnectionDialog" factory-bean="dataSource" factory-method="getPassword"/>
               </property>
    	   </bean>
    Après avoir passé les valeurs à la forme de connexion il m'affiche en mode console les bonnes valeurs du login et du password; je ne comprends donc pas pourquoi ces valeurs n'arrive pas à être récupérées par le bean pour la connexion
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
    log4j:WARN Please initialize the log4j system properly.
    Username :jpa
    Password :jpa
    Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user ''@'localhost' (using password: NO))
            at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
            at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
            at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
            at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)
            at mis.cinq.dao.DaoSpringJdbc.getAllNatures(DaoSpringJdbc.java:56)
            at mis.cinq.service.ServiceSpringJdbc.getAllNatures(ServiceSpringJdbc.java:44)
            at mis.cinq.view.TestSpringJdbc.main(TestSpringJdbc.java:51)
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user ''@'localhost' (using password: NO))
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
            at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
            at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
            at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
            ... 6 more
    Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
            at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)
            at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
            at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
            at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
            at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
            at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
            ... 9 more
    Java Result: 1
    BUILD SUCCESSFUL (total time: 4 seconds)

  3. #23
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2008
    Messages : 63
    Par défaut
    Concernant la réponse à tes questions :
    - Un setter est bien une méthode set* de même que get* est un getter.
    - Spring crée des beans (nouvelle instance de la classe) en fonction de ce que tu décris dans le xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <bean id="connexion" class="mis.cinq.connexion.ConnectionDialog">
                <property name="username" value="Alef [setter]"/>
                <property name="password" value="Alef [setter1]"/>
    </bean>
    Ca signifie qu'un object de type ConnectionDialog sera enregistré dans le container Spring avec "connexion" comme identifiant. Cet objet sera crée en appelant le contructeur à vide et appelera les méthodes set* pour paramétrer les valeur attributs "username" et "password" à "connexion". C'est ce mécanisme d'appels aux méthodes set qu'on appelle injection.

    Par contre, si tu crée un objet par appel à un new, cet objet ne sera pas lié au container Spring et donc tu ne pourras pas faire correspondre les valeurs d'un objet que tu as crée avec son instance crée par Spring.

    C'est ce explique ton dernier problème : ni user ni mot de passe, car Spring utilise l'objet qu'il a crée et non pas celui où tu as remplis tes valeurs. Il récupère donc des valeurs nulles.

    Pour résoudre ton problème, je te renvois à un des premiers messages de djo.mos.

  4. #24
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    merci pour ta réponse mais je crois que c'est exactement ce que j'essaie de faire

  5. #25
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    Merci pour ta réponse mais comment creér des factoyry beans qui seront renseigner par la classe après saisie. Tout ce que j'ai essayé n'a aboiti à rien

  6. #26
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,

    Citation Envoyé par yLaplace Voir le message
    merci pour ta réponse mais je crois que c'est exactement ce que j'essaie de faire
    Je ne sais pas si tu l'as remarqué, mais cette discussion tourne en rond depuis des jours.
    On ne comprend pas bien ce que tu veux faire. On essai de te proposer des solutions mais on dirait que tu ne les lis pas.
    Je te propose de relire attentivement la discussion, et si tu vois qu'on ne t'a pas proposé de solution adéquate, le mieux serait que tu reformules clairement ce que tu veux faire

  7. #27
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    j'ai un formulaire se saisie à travers lequel l'utilisateur saisie son mot de passe et son login pour se connecter à la bd.
    J'ai le contexte.xml .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <bean id="connexion" class="mis.cinq.connexion.ConnectionDialog">
                <property name="username" value="jpa"/>
                <property name="password" value="jpa"/>
           </bean>
     
           <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    		   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		   <property name="url" value="jdbc:mysql://localhost:3306/gestcar" />
    		   <property name="username" value="connexion.username" />
               <property name="password" value="connexion.password" />
    	   </bean>
    J'ai declaré un bean connexion lié à ma classe qui est sensé recuperer les valeurs après la saisie et les communiquer au bean datasource pour la connexion.
    Je recapitule:
    1- recuperer les paramètres de connexion après saisie par un bean c
    2- le bean c le communique au bean datasource
    3- connexion à la bd

  8. #28
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2008
    Messages : 63
    Par défaut
    J'ai une question à propos de ton contexte :

    Pourquoi avoir déclaré ConnectionDialog comme un bean spring ?
    S'agit-il d'un existant que tu essaies de modifier pour une gestion multi-utilisateur ?

    Si j'ai bien compris, c'est une classe liée à ton interface graphique : elle récupère les mots de passe dans les champs et les affecte à ses attributs. Mais il s'agit d'une classe que tu crées toi-même (avec un new quelque part dans ton code).

  9. #29
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    C'est un interface graphique(classe java que j'ai moi même ecrite) ds lequel je demande à l'utilisateur de saisir ces chaines de connexion. Et ce sont ces valeurs que je veux passer à ma datasource
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
     
    package mis.cinq.connexion;
     
    /**
     *
     * @author laplace
     */
    import java.util.Vector;
    import java.awt.*;
    import javax.swing.*;
     
    /**
     * JDBCConnectionDialog
     * Dialogue pour la connexion à une base de données via JDBC.
     * Permet de saisir les informations de connection :
     * <blockqoute>
     * <li> nom de l'utilisateur </li>
     * <li> son mot de passe </li>
     * <li> l'url du serveur de la BD </li>
     * <li> le nom du driver JDBC </li>
     * </blockqoute>
     * <P>et de récupérer l'objet java.sql.Connection correspondant
     *
     * @author : Petko Valtchev, Philippe Genoud d'après Philip Milne
     *           (SUN Micro Systems).
     */
     
    public class ConnectionDialog {
     
       t_connect connexion;
       // les différents titre des boutons du dialogue de connexion
       static String[] optionNames = { "Connect" , "Cancel" };
     
       public String text;
       public boolean bool= false;;
       String username;
       String password;
       String servername;
       String port1;
       String databaseName;
       String driver1;
       String server1;
       // les TextFields pour la saisie des informations de connexion
       JTextField  userNameField;
       JTextField  passwordField;
     
       JTextField  serverNameField;
       JTextField  databaseNameField;
     
       JComboBox  serverField;
       JComboBox driverField;
       JComboBox portField;
     
       // le Panel regroupant les "widgets" pour la connexion (TextFields
       // et Labels)
       JPanel      connectionPanel;
     
     
       Vector server;
       Vector driver;
       Vector port;
       int resdialog;
       /**
        * Création du panel qui contientra tous les champs d'information pour la connexion.
        * Attention, le dialogue n'est pas affiché. Il ne le sera que lorsque la méthode activate
        * sera invoquée.
        * @see #activate
        */
     
       public  ConnectionDialog(t_connect connexion) {
       	   this.connexion = connexion;
           Init();
       }
       public  ConnectionDialog() {
       	   Init();
       }
       public void Init() {
     
          // Création des Labels et des Textfields pour la saisie des informations
          // de connexion
          JLabel userNameLabel = new JLabel("User name: ", JLabel.RIGHT);
          userNameField = new JTextField(20);userNameField.setText("jpa");
     
          JLabel passwordLabel = new JLabel("Password: ", JLabel.RIGHT);
          passwordField = new JPasswordField(20);passwordField.setText("jpa");
     
          JLabel serverLabel = new JLabel("Database URL: ", JLabel.RIGHT);
          server = new Vector();
          //server.add("jdbc:mysql:///test");
          //server.add("jdbc:oracle:thin:@userman:1521:master");
          server.add("jdbc:oracle:thin:@");
          server.add("jdbc:mysql://");
          server.add("jdbc:odbc:");//"jdbc:odbc:diffu"); // Access
          server.add("jdbc:hsqldb:file:"); //HSQL création dans la base
          server.add("jdbc:hsqldb:mem:");  //HSQL création de la base en mémoire
          serverField = new JComboBox(server);
          serverField.setEditable(true);
          // "jdbc:oracle:thin:@hoff.imag.fr:1521:ufrima" pour oracle
     
          JLabel driverLabel = new JLabel("Driver: ", JLabel.RIGHT);
          driver = new Vector();
          driver.add("oracle.jdbc.driver.OracleDriver"); // Oracle 8i
          driver.add("com.mysql.jdbc.Driver");//"org.gjt.mm.mysql.Driver"); // Mysql
          driver.add("sun.jdbc.odbc.JdbcOdbcDriver"); // Access
          driver.add("org.hsqldb.jdbcDriver"); // HSQL
          driverField = new JComboBox(driver);
          // "oracle.jdbc.driver.OracleDriver" pour oracle
     
          JLabel serverNameLabel = new JLabel("Server Name: ", JLabel.RIGHT);
          serverNameField = new JTextField(20);serverNameField.setText("Localhost");
     
          JLabel databaseNameLabel = new JLabel("Database Name: ", JLabel.RIGHT);
          databaseNameField = new JTextField(20);databaseNameField.setText("gestcar");
     
          JLabel portLabel = new JLabel("Port: ", JLabel.RIGHT);
          port = new Vector();
          port.add("1521");
          port.add("3306");
          portField = new JComboBox(port);
     
          // Création d'un Panel et placement dans celui-ci des Labels
          JPanel namePanel = new JPanel(false);
          namePanel.setLayout(new GridLayout(7, 1));
          namePanel.add(userNameLabel);
          namePanel.add(passwordLabel);
          namePanel.add(databaseNameLabel);
          namePanel.add(serverNameLabel);
          namePanel.add(portLabel);
          namePanel.add(serverLabel);
          namePanel.add(driverLabel);
     
          // Création d'un Panel et placement dans celui-ci des TextFiels
          JPanel fieldPanel = new JPanel(false);
          fieldPanel.setLayout(new GridLayout(7, 1));
          fieldPanel.add(userNameField);
          fieldPanel.add(passwordField);
          fieldPanel.add(databaseNameField);
          fieldPanel.add(serverNameField);
          fieldPanel.add(portField);
          fieldPanel.add(serverField);
          fieldPanel.add(driverField);
     
          // Création d'un Panel regroupant le Panel des Labels et le Panel
          // des TextFiedls
          connectionPanel = new JPanel(false);
          connectionPanel.setLayout(new BoxLayout(connectionPanel,
                                                  BoxLayout.X_AXIS));
     
          connectionPanel.add(namePanel);
          connectionPanel.add(fieldPanel);
     
          /*
          * Affiche le dialogue pour la connexion.
          */
          resdialog  = JOptionPane.showOptionDialog(
             null, // composant parent, ici une Frame par défaut
             connectionPanel, // le contenu du dialogue
             "Connexion JDBC",  // titre du dialogue
             JOptionPane.DEFAULT_OPTION,
             JOptionPane.INFORMATION_MESSAGE, // type du message (utilisé pour l'icone du dialogue)
             null, // icone à afficher, ici icone par défaut en fonction du type de message
             optionNames, //tableau de String indiquant les choix possibles pour l'utilisateur
             optionNames[0]  // la selection par defaut pour le dialogue
          );
         activate();
       }
     
       /**
        * @return la référence pour l'adpatateur de connexion JDBC si la connexion
        *           a été demandée et a réussi, null sinon.
       */
       public void  activate() {
          if (resdialog == 0) {
          	    username = userNameField.getText();
                password = passwordField.getText();
                servername = serverNameField.getText();
                port1 =  (String) portField.getSelectedItem();
                databaseName = databaseNameField.getText();
                driver1 = (String) driverField.getSelectedItem();
                server1 =  (String) serverField.getSelectedItem();
                System.out.println("Username :" + getUsername());
                System.out.println("Password :" + getPassword());
    	        if ( databaseName == null) {
                    text = "No database provided. Program stopped!";
                    bool = false;
                    //System.out.println("No database provided. Program stopped!");
                    System.exit(0);
                }
                /*try {
                    connexion = new t_connect(username,password,servername,port1,databaseName,driver1,server1);
    	             //connexion = new t_connect(servername,username,password,databaseName); MYSQL
                    if ( ! connexion.acceptsConnection() ) {
                        text = "I'm not able to connect. Error:\n" + connexion.getError();
                        bool= false;
                        //System.out.println("I'm not able to connect. Error:\n" + connexion.getError());
                    } else {
                        text = "This DB accepts connection with these parameters!";
                        bool= true;
                        //System.out.println("This DB accepts connection with these parameters!");
                    }
                } catch (Exception ex) {
            	        JOptionPane.showMessageDialog(null, "Classes du driver non trouvées","alert", JOptionPane.ERROR_MESSAGE);
                }*/
          }
     
       }
     
       public void setUsername(String username) {
       	  this.username = username;
       }
     
       public String getUsername() {
       	  return username;
       }
     
       public void setPassword(String password) {
       	  this.password = password;
       }
       public String getPassword() {
       	  return password;
       }
     
       public void setservername(String servername) {
       	  this.servername = servername;
       }
     
       public String getservername() {
       	  return servername;
       }
     
       public void setPort(String port1) {
       	  this.port1 = port1;
       }
     
       public String getPort() {
       	  return port1;
       }
     
       public void setDatabasename(String databaseName) {
       	  this.databaseName = databaseName;
       }
     
       public String getDatabasename() {
       	  return databaseName;
       }
     
       public void setDriver(String driver1) {
       	  this.driver1 = driver1;
       }
     
       public String getDriver() {
       	  return driver1;
       }
     
       public void setServer1(String server1) {
       	  this.server1 = server1;
       }
     
       public String getServer1() {
       	  return server1;
       }
     
     
      /**
       * retourne l'url désignant la BD pour laquelle la connexion est établie.
       * @return l'url désignant la bd
       */
     
      public String getDburl() {
        return (String) serverField.getSelectedItem();
      }
     
       /**
        * programme de Test de la classe JDBCConnectionDialog
        */
      /* public static void main(String s[]) {
     
          ConnectionDialog dialConnexion = new ConnectionDialog();
          //Connection conn = dialConnexion.activate();
          dialConnexion.activate();
          //if (conn == null)
          //   System.exit(0);
          //else
           //  System.out.println("Connexion réussie");
     
     
       }*/
     
    }
    C'est ds l'intention de recupérer les valeurs que je l'ai transformé en bean

  10. #30
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    je me suis dit qu'une méthode coe celle ci dessous serait la bien-venue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean id="exampleBean"
          factory-bean="myFactoryBean"
          factory-method="createInstance"/>
    mais à l'utilisation j'ai des erreurs
    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
     
    <bean id="connexion" class="mis.cinq.connexion.ConnectionDialog">
           </bean>
     
           <bean id="username" factory-bean="connexion" factory-method="getUsername"/>
           <bean id="password" factory-bean="connexion" factory-method="getPassword"/>
     
           <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    		   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		   <property name="url" value="jdbc:mysql://localhost:3306/gestcar" />
    		   <property name="username">
                   <bean id="username"  class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
               </property>
               <property name="password">
                   <bean id="password"  class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
               </property>
    	   </bean>

  11. #31
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    Je pense avoir trouvé la solution. Effectivement la méthode factory-method résoud le problème je pense. C'est la référence de la datasource qui n'était pas bonne. Voilà la nouvelle config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <bean id="connexion" class="mis.cinq.connexion.ConnectionDialog">
           </bean>
     
           <bean id="username" factory-bean="connexion" factory-method="getUsername"/>
           <bean id="password" factory-bean="connexion" factory-method="getPassword"/>
     
           <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    		   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		   <property name="url" value="jdbc:mysql://localhost:3306/gestcar" />
               <property name="username"><ref bean="username"/></property>
               <property name="password"><ref bean="password"/></property>
    	   </bean>

  12. #32
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2008
    Messages : 63
    Par défaut
    Coté syntaxe c'est probablement ok.
    Par contre, si tu encore une erreur de connexion comme tu as eu (username="" et pas de password), c'est parce qu'il ne sont pas static dans ton code.

    J'ai trouvé aussi ça qui pourrais t'intéresser.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Passage de paramètres ID/PASSWORD
    Par OlFo66 dans le forum Apache
    Réponses: 3
    Dernier message: 07/08/2012, 18h43
  2. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 01h15
  3. [XSL] Passage de paramètres à un template
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2003, 14h28
  4. passage de paramètres
    Par pram dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/02/2003, 18h28
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 20h47

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