Connection à une bdd DB2 en jdbc avec domino designer

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Connection à une bdd DB2 en jdbc avec domino designer

Messagepar albert.coeffard » 28 Oct 2013 à 12:07

Bonjour
J'ai beaucoup de difficultés à me connecter à ma base db2 en java jdbc
partant d'un serveur domino en v9 installé sur windows 2008 et attaquant une base db2 sur as400

Mon code installé dans un before page load d'une xpage permet de simuler la connexion

une class Launcher :

Code : Tout sélectionner
package connexion;
import connexion.ConnexionTest;

public class Launcher {

    /**
     * @param args
     */
    public static void main() {
        System.out.println("test0");   
        ConnexionTest connexionTest = new ConnexionTest();           
        connexionTest.connecterDB2();
        System.out.println("test9999");
    }
}


et une class ConnexionTest

Code : Tout sélectionner
package connexion;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnexionTest {

    // URL de connexion
    private static final String URL = "jdbc:db2://databasename:port/tablename";
    // Nom du user
    private static final String USER = "userlogin";
    // Mot de passe de l'utilisateur
    private static final String PASSWD = "userpassword";
   
    private Connection cn = null;

    public void connecterDB2() {       
        if (cn == null) {
            try {
                System.out.println("test1");
                Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");                     
               System.out.println("test2");
                cn = DriverManager.getConnection(URL, USER, PASSWD);
                System.out.println("test3");
                System.out.println("Connexion effectuée");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                System.out.println("test4");
                System.out.println("Pas de driver trouvé");
            } catch (SQLException e) {
                e.printStackTrace();
                System.out.println("test5");
                System.out.println("Pas de base de données trouvée");
            } finally {
                try {
                    cn.close();
                    System.out.println("Connexion fermée");
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}


Ma config matérielle :

Nous avons essayé de :

1 - trouver le fichier jt400.jar dans le répertoire sur as400 (/QIBM/ProdData/http/public/bin/jt400/ jt400.jar"), il est bien présent et adaptation du fichier notes.ini du serveur domino d'ajouter cette variable JavaUserClasses=/QIBM/ProdData/http/public/bin/jt400 et on essayé en précisant le jt400

2 - copier jt400.jar dans le répertoire jvm/lib/ext

3- essayer également dans le fichier notes.ini du serveur domino d'ajouter cette variable JavaUserClasses=c:\chemin\jt400.jar (après avoir copié jt400.jar dans le chemin du serveur domino)

4- essayer de copier le fichier jt400.jar sur le bureau et de le configurer directement dans le buidlpath, mais là non plus cela ne passe pas du tout

Malheureusement dans tous les cas, nous avons cette erreur :
Exception in execution unity "main" # START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: connexion.Launcher
Caused by: java.lang.ClassNotFoundException: connexion.Launcher
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:626)

Nous avons toujours "test 4 " et la réponse : "Pas de driver trouvé" !

Pouvez-vous m'aider ?
Avatar de l’utilisateur
albert.coeffard
Posteur habitué
Posteur habitué
 
Message(s) : 255
Inscrit(e) le : 23 Fév 2007 à 15:01
Localisation : Pays de Loire

Re: Connection à une bdd DB2 en jdbc avec domino designer

Messagepar albert.coeffard » 29 Oct 2013 à 15:52

Les essais effectués

Nous avons :

1 - trouvé le fichier jt400.jar dans le répertoire sur as400 (/QIBM/ProdData/http/public/jt400/lib/jt400.jar"), il est bien présent, nous avons essayé de le placer dans le fichier notes.ini du serveur domino et d'ajouter la variable suivante JavaUserClasses=/QIBM/ProdData/http/public/bin/jt400.jar (ou en ne précisant pas jt400.jar)

2 - copié jt400.jar dans le répertoire jvm/lib/ext

3 - essayé de copier également dans le fichier notes.ini du serveur client (celui où se crée l'application) et d'ajouter cette variable JavaUserClasses=c:\chemin\jt400.jar (après avoir copié jt400.jar dans le chemin du serveur domino)

4 - essayer de copier le fichier jt400.jar sur le bureau et de le configurer directement dans le buidlpath, mais là non plus cela ne passe pas du tout

5 - essayé de placer le fichier jt400.zip et le db2_classes.jar dans le répertoire web_inf/lib et nous l'avons ajouté au buildpath de l'application (clic droit ajouter dans le buildpath)

Ce 5ème point fonctionne, en effet nous n'avons plus l'erreur "NoClassDefFoundError: connexion.Launcher
Caused by: java.lang.ClassNotFoundException: connexion.Launcher"

Mais depuis, nous avons cette deuxième exception :
java.sql.SQLException: INTERNAL ERROR: Creation of DB2Driver object for registering with DriverManager failed. -> java.sql.SQLException: INTERNAL ERROR: Could not load the service program for the J9 JDBC native methods. /QIBM/ProdData/OS400/Java400/libjdbcj9.so

6 - Nous avons cherché ce fichier /QIBM/ProdData/OS400/Java400/libjdbcj9.so, nous l'avons bien trouvé à cet emplacement. Nous avons essayé de l'ajouter dans le fichier web-inf/lib et en l'ajoutant dans le buildpath mais l'erreur reste quand même la même.

7 - Nous avons testé avec les responsables AS400, la connexion hors jdbc avec les mêmes mots de passe, login et accès à la même table, cela fonctionne. Cela ne vient donc pas d'un problème lié à la base db2 mais à la connexion.

vraiment besoin d'une aide ?
une idée ?
Avatar de l’utilisateur
albert.coeffard
Posteur habitué
Posteur habitué
 
Message(s) : 255
Inscrit(e) le : 23 Fév 2007 à 15:01
Localisation : Pays de Loire

Re: Connection à une bdd DB2 en jdbc avec domino designer

Messagepar albert.coeffard » 29 Oct 2013 à 17:27

bon (au cas où ça puisse servir à d'autre), l'erreur venait d'une mauvaise écriture de l'url de connexion :
j'avais mis db2 au lieu d'as400 !!
depuis ça marche !!
Avatar de l’utilisateur
albert.coeffard
Posteur habitué
Posteur habitué
 
Message(s) : 255
Inscrit(e) le : 23 Fév 2007 à 15:01
Localisation : Pays de Loire


Retour vers Développement

cron