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

Servlets/JSP Java Discussion :

glassfish jndi informix


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut glassfish jndi informix
    Bonjour
    Mon maitre de stage vien de me proposer de modifier mon mode de connection à ma BD informix sur mon application Web

    actuellement j'utilise:
    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
     
    public static int ConnectIfx(String identifiant, String password)
        {
            id=identifiant;
            pass=password;
             if(conn != null)
                {   
                    JOptionPane.showMessageDialog(null,"Erreur");
                    return 0;
                }
                else
                {
                    connURL="jdbc:informix-sqli://"+hostname+":"+port+"/"+dbName+":INFORMIXSERVER="+InformixServer+";user="+id+";password="+pass;
                    int res=connectToDBServer(connURL);
                    return res;
                }
        }//création de l'url de connexion
     
     
        public static int connectToDBServer(String connect)
        {
     
            try
            {
                String ifxDriver="com.informix.jdbc.IfxDriver";
        /*enregistrer le informix-jdbc driver*/
              Driver ifmxDrv=(Driver)Class.forName(ifxDriver).newInstance();
        /*se connecter au serveur base de données*/
                // InitialContext ctx = new InitialContext();
                 //   DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/frameWeb");
                 //   conn=ds.getConnection();
                conn = DriverManager.getConnection(connect);
     
                return 2;
            }
            catch(SQLException parExc)
            {
                JOptionPane.showMessageDialog(null,parExc.getMessage(),"Erreur de la base de donnee",JOptionPane.ERROR_MESSAGE);
                return 1;
            }
            catch(Exception e)
            {
                e.printStackTrace();
                return 1;
            }
        }//connexion a la base de donnees
    et mon maitre de stage voudrai que j'utilise JNDI
    Je sais pas a quoi ça sert, ni comment l'utiliser.

    Est-ce que je pourrai toujours me connecter avec sécurité?
    Comment configurere NetBean-glassfish?


    j'ai besoin de vos conseils rapidement!

    Merciiiiii

  2. #2
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Je pense que ce que souhaite ton maître de stage, c'est que tu "supprimes" le paramétrage de l'accès (URL JDBC, login, mdp) de ton code source.

    Si ton code fonctionne sur un serveur d'application (tu as l'air d'utiliser Glassfish, non ?), tu peux utiliser des sources de données (datasources). Tu vas déclarer ta source de données dans ton serveur d'application (par exemple par la console d'administration) et tu vas lui donner un nom symbolique. A partir de ce nom (qui va remplacer l'URL, login, mdp dans ton code) et avec l'API JNDI, tu vas pouvoir accéder à ta base de données directement.

    L'intérêt de cette approche est que tu peux maintenant configurer ton accès à la base en paramétrant la datasource (sécurité, pool de connexion ...) au niveau du serveur d'application (et donc sans toucher à ton source).

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    Je te remercie pour ta réponse rapide


    oui j'utilise glassfish.
    J'ai donc créer le pool de connection et la ressource jndi via le localhost:4848

    mais j'ai ce pb là :

    il ne trouve pas com.informix.jdbcx.IfxDataSource

    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
     
    RAR5038:Unexpected exception while creating resource for pool frameWeb. Exception : Class name is wrong or classpath is not set for : com.informix.jdbcx.IfxDataSource
    RAR5117 : Failed to obtain/create connection from connection pool [ frameWeb ]. Reason : Class name is wrong or classpath is not set for : com.informix.jdbcx.IfxDataSource
    RAR5114 : Error allocating connection : [Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : com.informix.jdbcx.IfxDataSource]
    RAR5099 : Wrong class name or classpath for Datasource Object 
    java.lang.ClassNotFoundException: com.informix.jdbcx.IfxDataSource
            at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1498)
            at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:251)
            at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:106)
            at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:970)
            at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:139)
            at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:93)
            at com.sun.enterprise.resource.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:68)
            at com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(AbstractResourcePool.java:891)
            at com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToPool(AbstractResourcePool.java:1752)
            at com.sun.enterprise.resource.AbstractResourcePool.createResources(AbstractResourcePool.java:917)
            at com.sun.enterprise.resource.AbstractResourcePool.initPool(AbstractResourcePool.java:225)
            at com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(AbstractResourcePool.java:516)
            at com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:443)
            at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
            at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
            at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:327)
            at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
            at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
            at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
            at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:130)
            at fonctions.RequetesSQL.connectToDBServer(RequetesSQL.java:73)
            at servlet.Controleur.processRequest(Controleur.java:33)
            at servlet.Controleur.doPost(Controleur.java:66)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    Voilà
    Comment faire?

  4. #4
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    C'est parce que ce driver se trouve dans le fichier "ifxjdbcx.jar" (au lieu de ifxjdbc.jar).

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Par défaut
    je ne trouve pas la librairie

  6. #6
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Cette bibliothèque fait partie de la distribution "Informix JDBC driver" (qui contient plusieurs fichiers : ifxjdbc.jar, ifxjdbc-g.jar, ifxjdbcx.jar, ifxjdbcx-g.jar ...). Peut-être que le répertoire contenant ton fichier ifxjdbc.jar (cherche dans le classpath pour le situer) contient également les autres ? Sinon ça peut se télécharger ici chez IBM.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quels sont les paramètres JNDI pour GlassFish ?
    Par verbose dans le forum Glassfish et Payara
    Réponses: 17
    Dernier message: 07/09/2012, 18h49
  2. Réponses: 0
    Dernier message: 14/11/2010, 23h47
  3. JMS - JORAM - GlassFish - Problème avec JNDI
    Par Moustikos dans le forum JOnAS
    Réponses: 0
    Dernier message: 08/02/2010, 19h25
  4. BIRT Glassfish & JNDI
    Par cesar.girault dans le forum BIRT
    Réponses: 2
    Dernier message: 29/04/2009, 13h20
  5. listBindings() sur JNDI Glassfish
    Par iceman dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 18/09/2007, 00h37

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