Je n'arrive pas à configurer Hibernate pour qu'il prenne en compte les connexion d'un pool DBCP géré par Tomcat :

Voici lmon fichier context.xml dans le dossier META-INF de mon projet :
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
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
 
<?xml version="1.0" encoding="UTF-8"?>
 
<Context path="/transfertFichier" 
	reloadable="true" 
	docBase="\TransfertFichier" >
	<Resource
		name="jdbc/transfertFichier"
		auth="Container"
		type="javax.sql.DataSource"/>
	<ResourceParams name="jdbc/TutoPool">
		<parameter>
			<name>username</name>
			<value>postgres</value>
	 	</parameter>
		<parameter>
			<name>password</name>
			<value>p1i2e3*</value>
		</parameter>
	 	<parameter>
			<name>driverClassName</name>
			<value>org.postgresql.Driver</value>
	 	</parameter>
		<parameter>
			<name>url</name>
			<value>jdbc:postgresql://localhost:5432/transfert</value>
		</parameter>
		<parameter>
		<name>maxActive</name>
		<value>20</value>
	</parameter>
	<parameter>
		<name>maxIdle</name>
		<value>10</value>
	</parameter>
	<parameter>
		<name>maxWait</name>
		<value>10000</value>
	</parameter>
	<parameter>
		<name>validationQuery</name>
		<value>select 1</value>
	</parameter>
	<parameter>
		<name>removeAbandoned</name>
		<value>true</value>
	</parameter>
	<parameter>
		<name>removeAbandonedTimeout</name>
		<value>20</value>
	</parameter>
	<parameter>
		<name>logAbandoned</name>
		<value>true</value>
	</parameter>
	</ResourceParams>		 
</Context>
LA declaration de la ressource dans le web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<resource-ref>
		<description>
			reference a la ressource BDD pour le pool
		</description>
		<res-ref-name>jdbc/transfertFichier</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
		<res-sharing-scope>Shareable</res-sharing-scope>
	</resource-ref>
et la configuration dans Hibernate :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<property name="connection.datasource">java:comp/env/jdbc/transfertFichier</property>
		<!-- dialect for PostgreSQL -->
    	<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
Au lancement d'hibernate je me prend la (longue liste) exceptions suivante :
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
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
 
26 juil. 2006 13:51:10 org.hibernate.connection.DatasourceConnectionProvider configure
INFO: Using datasource: java:comp/env/jdbc/transfertFichier
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
ATTENTION: Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1881)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
	at persistance.HibernateUtil.<clinit>(HibernateUtil.java:13)
	at persistance.HibernateManager.startSession(HibernateManager.java:155)
	at metier.GestionUser.logUser(GestionUser.java:371)
	at controleur.ServletPrinc.login(ServletPrinc.java:365)
	at controleur.ServletPrinc.doPost(ServletPrinc.java:154)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
	at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(Unknown Source)
	at java.sql.DriverManager.getDriver(Unknown Source)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
	... 26 more
26 juil. 2006 13:51:10 org.hibernate.dialect.Dialect <init>
INFO: Using dialect: org.hibernate.dialect.PostgreSQLDialect
26 juil. 2006 13:51:10 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
26 juil. 2006 13:51:10 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
26 juil. 2006 13:51:10 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
INFO: Using ASTQueryTranslatorFactory
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.EhCacheProvider
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
26 juil. 2006 13:51:10 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
26 juil. 2006 13:51:10 org.hibernate.impl.SessionFactoryImpl <init>
INFO: building session factory
26 juil. 2006 13:51:13 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
26 juil. 2006 13:51:14 org.hibernate.util.JDBCExceptionReporter logExceptions
ATTENTION: SQL Error: 0, SQLState: null
26 juil. 2006 13:51:14 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: Cannot create JDBC driver of class '' for connect URL 'null'
org.hibernate.exception.GenericJDBCException: Cannot open connection
	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129)
	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
	at $Proxy0.beginTransaction(Unknown Source)
	at persistance.HibernateManager.startTransaction(HibernateManager.java:162)
	at metier.GestionUser.logUser(GestionUser.java:372)
	at controleur.ServletPrinc.login(ServletPrinc.java:365)
	at controleur.ServletPrinc.doPost(ServletPrinc.java:154)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
	... 30 more
Caused by: java.lang.NullPointerException
	at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(Unknown Source)
	at java.sql.DriverManager.getDriver(Unknown Source)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
	... 33 more
Il semble qu'il ne trouve pas mon driver, ni l'Url de connexion ...