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 java : 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 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 :
Ceci fonctionne très bien mais quand j'essaye d'utiliser ce code dans un projet Web dinamique j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Alors que j'ai bien rajouté
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 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)
- tdgssconfig.jar
- terajdbc4.jar
dans les librairies. Tout comme le projet Java...
Une idée ? parce que là c'est dément![]()
Partager