Erreur connexion Teradata
Bonjour,
voilà je dois développer un site web qui se connecte à une base de données Teradata.
J'ai donc testé la connexion à la base de données dans un projet Java simple et tout fonctionne avec ce code :
Code:
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
| package com.model;
import java.sql.*;
public class DBConnection {
private Connection connection;
private String login;
private String password;
private static DBConnection dbConnection = null;
private String pilote = "com.teradata.jdbc.TeraDriver";
private String url = ("jdbc:teradata://DEV");
private boolean isConnected = false;
/***
* Constructeur de la classe , qui est privée afin de créer un singleton pour limiter le nombre de connexions
* @param login
* @param password
*/
private DBConnection(String login, String password)
{
try
{
this.login = login;
this.password = password;
Class.forName(pilote);
System.out.println("Connecter sur " + url);
this.connection = DriverManager.getConnection(url,login,password);
System.out.println(login+ " connecté");
this.isConnected = true;
//stmt = conn.createStatement();
}
catch ( SQLException E)
{
//JOptionPane.showMessageDialog(null,"Erreur de connexion à la base. Veuillez contacter votre administrateur système","Connexion",JOptionPane.WARNING_MESSAGE);
// System.out.println("probleme de connexion");
E.printStackTrace();
this.isConnected = false;
}
catch ( ClassNotFoundException E)
{
E.printStackTrace();
this.isConnected = false;
}
}
public static synchronized DBConnection getInstance( String login, String password) {
if(dbConnection == null)
{
System.out.println("Instance créée");
dbConnection = new DBConnection(login, password);
}
return dbConnection;
}
/***
* Ferme la connexion à la base de données
*/
public void Close() {
try {
if(!this.connection.isClosed()) {
this.connection.close();
System.out.println("Connexion fermée");
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public boolean isConnected() {
return isConnected;
}
public void setConnected(boolean isConnected) {
this.isConnected = isConnected;
}
} |
Et je me connecte comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| import com.model.DBConnection;
public class Launch {
public static void main(String[] args) {
DBConnection db = DBConnection.getInstance("test", "testpassword");
db.Close();
}
} |
Ceci fonctionne très bien mais quand j'essaye d'utiliser ce code dans un projet Web dinamique j'ai l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| java.lang.ClassNotFoundException: com.teradata.jdbc.TeraDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.model.DBConnection.<init>(DBConnection.java:29)
at com.model.DBConnection.getInstance(DBConnection.java:66)
at com.servlet.ConnectionServlet.doPost(ConnectionServlet.java:27)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source) |
Alors que j'ai bien rajouté
- tdgssconfig.jar
- terajdbc4.jar
dans les librairies. Tout comme le projet Java...
Une idée ? parce que là c'est dément :aie: