Ok, j'ai ce problème étrange. J'utilise Tomcat 5.5 avec Hibernate. J'ai ajouté la ressource dans TOMCAT_HOME/conf/server.xml et aussi dans web.xml de mon application.
Mais je reçois une erreur lors de l'utilisation Hibernate pour construire l'usine de la session comme ceci:Impossible de se connecter à la base de données en utilisant Tomcat 5.5 et Hibernate
configure.buildSessionFactory()
Mais je reçois cette erreur:
[ WARN]21:04:29 (SettingsFactory.java:buildSettings:144) - Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Ma configuration des ressources server.xml est comme ça :
<Context path="/myApp" docBase="myApp" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/myApp" auth="Container" type="javax.sql.DataSource" driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxPoolSize="100" minPoolSize="5"
acquireIncrement="5"
user="username"
password="1234"
jdbcUrl="jdbc:sqlserver://192.168.1.108:1433;databaseName=myAppDB;autoReconnect=true" />
</Context>
Mon web.xml est comme ceci:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/myApp</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Ce sont les propriétés Hibernate je suis dans mon code d'initialisation Java manuellement:
hibernate.useJndi = "true"
hibernate.connection.datasource="java:/comp/env/jdbc/myApp"
hibernate.connection.jndi.datasource="jdbc/myApp"
hibernate.dialect="org.hibernate.dialect.SQLServerDialect"
hibernate.current_session_context_class="thread"
Donc, mon hibernate.cfg.xml est essentiellement vide, étant donné que la configuration se fait dans le code Java et par JNDI. La partie bizarre est que si je modifie seulement le server.xml et web.xml pour utiliser type = "com.mchange.v2.c3p0.ComboPooledDataSource" avec factory = "org.apache.naming.factory.BeanFactory "et laisser tous les autres trucs pareil, ça marche !!!
Pourquoi la configuration ci-dessus ne fonctionne-t-elle pas? Je l'ai pris du tutoriel Tomcat 5.5 JNDI. J'ai besoin de l'utiliser car après avoir obtenu ce qui précède, je prévois d'étendre org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.
Merci.
@Marquinio: C'est probablement le problème. Voir aussi http://social.msdn.microsoft.com/forums/en/sqldataaccess/thread/28c1bf87-694a-4520-93d2-51d961f50e35 – shinynewbike
Mon pot est sous TOMCAT/common/lib. Mais une partie bizarre est comme je l'ai dit si je change le code ci-dessus à type = "com.mchange.v2.c3p0.ComboPooledDataSource" avec factory = "org.apache.naming.factory.BeanFactory" et en laissant tous les autres trucs les mêmes, Ça marche. – Marquinio