Se connecter à une base de données DB2 dans eclipse via jdbc
Je suis en train d'essayer de vous connecter à une base de données IBM DB2 avec Eclipse (version Juno) via JDBC.
J'ai ajouté les pilotes externes (fichiers jar) pour mon projet et que le pilote est correctement chargé ...
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.ibm.db2.jcc.DB2Driver");
System.out.println("Driver loaded");
Connection dbConn = DriverManager.getConnection("jdbc:db2://***.**.***.*:50000/BWUEBDB", "username", "password");
System.out.println("Connected");
}
Je sais aussi que les données de connexion (chemin de base de données, nom d'utilisateur, mot de passe) est correct.
Mais je reçois un java.lang.NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: sun/io/UnknownCharacterException
at com.ibm.db2.jcc.b.a.<init>(a.java:238)
at com.ibm.db2.jcc.b.b.a(b.java:1624)
at com.ibm.db2.jcc.c.p.a(p.java:350)
at com.ibm.db2.jcc.c.p.<init>(p.java:404)
at com.ibm.db2.jcc.b.b.<init>(b.java:256)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:163)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at AppTest.main(AppTest.java:17)
Caused by: java.lang.ClassNotFoundException: sun.io.UnknownCharacterException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
Il doit y avoir quelque chose de mal avec les propriétés du projet, mais je ne sais vraiment pas où chercher.
Faites de votre nom d'utilisateur ou le mot de passe contient des caractères non-ASCII, par hasard?
Nope, désolé....
Ce JRE utilisez-vous? Il semble que le soleil.io.UnknownCharacterException n'est pas trouvé, et qui peuvent être spécifiques à Sun/Oracle Jre. Avez-vous essayé une autre méthode, comme l'instanciation d'un com.ibm.db2.ccc.DB2SimpleDataSource exemple?
Je n'ai pas de travail avec com.ibm.db2.ccc.DB2SimpleDataSource. Pourriez-vous fournir un exemple de code raccord à mon cas? Je suis l'aide de JRE 1.4 btw.
Nope, désolé....
Ce JRE utilisez-vous? Il semble que le soleil.io.UnknownCharacterException n'est pas trouvé, et qui peuvent être spécifiques à Sun/Oracle Jre. Avez-vous essayé une autre méthode, comme l'instanciation d'un com.ibm.db2.ccc.DB2SimpleDataSource exemple?
Je n'ai pas de travail avec com.ibm.db2.ccc.DB2SimpleDataSource. Pourriez-vous fournir un exemple de code raccord à mon cas? Je suis l'aide de JRE 1.4 btw.
OriginalL'auteur mosquito87 | 2014-05-22
Vous devez vous connecter pour publier un commentaire.
J'avais la même erreur. Je courais à l'aide de java 8, je suis passé à Java 7 et cela a fonctionné.
OriginalL'auteur Gaurav Swaroop
Quelle est la Version du pilote utilisez-vous? J'ai rencontré le même problème avec Java 1.8 et la version du pilote 2 (nommé db2jcc.jar). À l'aide du pilote de la version 4 (nommé db2jcc4.jar) il fonctionne parfaitement. Assurez-vous, lors de l'utilisation, par exemple tomcat, que seul le bon pilote est persistant dans le lib-répertoire. Si les deux pilotes sont persistantes, il sera strictement l'utilisation de l'ancien (version 2).
Je suis passé de db2jcc-1.3.1.jar pour db2jcc-1.4.2.jar pour résoudre ce problème avec Java 8.
OriginalL'auteur Odihase
Essayez d'utiliser la connexion directe de la part du conducteur, ayant le même chemin de classe et de l'utilisateur. De cette façon vous pouvez vous assurer que votre environnement est correctement configuré, et le problème est de Java.
http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_rjv00004.html
Vous pouvez même le configurer de cette ligne dans Eclipse, en passant par les paramètres de la "Exécuter..." de dialogue, et en utilisant le même chemin de classe que vous exécutez votre application.
OriginalL'auteur AngocA
Après j'ai changer la DB2 pot à
db2jcc4-9.7.jar
il fonctionne correctement sans aucun problème.Le JDK version que j'utilise est 1.8.0_131
OriginalL'auteur Augustine Joseph