Quelqu'un sait-il ce qui se passe ici:"Aucun pilote approprié" problème avec Hibernate3, PostgreSQL 8.3 et Java 5
Je lance en veille prolongée 3.2.6 contre PostgreSQL 8.3 (installé via fink) base de données sur mon Mac OS X La configuration fonctionne correctement lorsque j'utilise Java 6 et le pilote JDBC 4 (postgresql-8.3-603.jdbc4). Cependant, j'ai besoin de ce truc pour travailler avec Java 5 et (par conséquent) JDBC 3 (postgresql-8.3-603.jdbc3). Quand je change le pot dans le classpath et passer à Java 5 (je le fais dans l'éclipse), je reçois l'erreur suivante:
Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
<Rows clipped for readability>
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
Quel est le problème ici? Je ne peux pas voir. Voici ma configuration de mise en veille prolongée:
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:postgresql:test</property>
<property name="connection.username">postgres</property>
<property name="connection.password">p</property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<mapping resource="com/mydomain/MyClass.hbm.xml"/>
</session-factory>
</hibernate-configuration>
EDIT: Plus, plus forme habituelle de l'URL de connexion: jdbc: postgresql: // localhost/test a exactement le même comportement.
Le pot de pilote est sans aucun doute dans le chemin de classe, et je ne gère pas aussi d'obtenir des erreurs avec ce code de test JDBC direct:
public static void main(String[] args) throws Exception {
Class.forName("org.postgresql.Driver");
Connection con=DriverManager.getConnection("jdbc:postgresql://localhost/test","postgres", "p");
}
Merci! Ça a marché. D'une certaine façon j'avais copié un exemple où la propriété de classe de conducteur n'était pas présente. Et parce que cela fonctionnait avec JDBC4/Java6-setup, je ne pouvais pas comprendre qu'il pouvait y avoir un problème avec le fichier de configuration. – auramo