[tomcat][jsp][postgrey] pb driver
je dois attaquer une base postgrey a partir de tomcat a l'aide des pool de connexion et je comprend pas pourquoi ca marche pas
voici mon erreur en gros
Citation:
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:743)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518)
at connexion.Pool.getConnection(Pool.java:39)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:55)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
mon jsp
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
|
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<%@ page language="java"%>
<%@ page import="connexion.*,java.sql.*"%>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<%
try {
Connection conn = Pool.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from intervenant");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
out.println(rs.getString(1)+"-"+rs.getString(2)+"-"+rs.getString(3)
+"-"+rs.getString(4)+"-"+rs.getString(5)+"-"+rs.getString(6)+"-"+rs.getString(7));
}
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html> |
mon pool de connexion
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
|
package connexion;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class Pool {
/**
* Method Pool create a new connection pool
*/
public Pool() {
System.out.println("DBUtil instance created.");
}
/**
* Method getConnection.
* @return Connection New connection from the pool
*/
public static Connection getConnection() throws SQLException, NamingException {
Connection conn = null;
Context initContext;
initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/postgres");
conn = ds.getConnection();
return conn;
}
} |
et comme indiqué j'ai rajouter dans mon web.xml
Citation:
<resource-ref>
<description>postgreSQL Datasource example</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
et dans mon serveur.xml
Citation:
<Context path="/database" docBase="database" debug="0" reloadable="true" >
<Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/postgres">
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:postgresql://192.168.150.101:5432/base</value>
</parameter>
<parameter>
<name>username</name>
<value>"login"</value>
</parameter>
<parameter>
<name>password</name>
<value>"mot de passe"</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
sans oublier de rajouter dans mon "tomcat"/comman/lib mon jar de jdbc pour postgrey
merci d'avance