Sorry to bother you but I keep getting an error et I don't really understand why.
As specified in the title I'm trying to connect on my postgresql database running heroku using hibernate. My app is also running on Heroku.
It's working in local mode, I've tried several postgre drivers.
Here's my hibernate.cfg.xml :
<!-- PostgreSQL -->
<property name="connection.url">jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq</property>
<property name="connection.username">paafeblgkhhbk</property>
<property name="connection.password">My password</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
The url, password and username are overridden when I get the session :
Configuration configuration = new Configuration();
configuration.addAnnotatedClass(Client.class);
// and other classes
try {
Class.forName("org.postgresql.Driver");
System.out.println(" === === DRIVER FOUND === === ");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println(" === === DRIVER NOT FOUND === === ");
}
configuration.configure();
System.out.println("============================= EXPORT SCHEMA ==========================");
new SchemaExport(configuration).create(true, true);
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
As you can see the driver is found. I'm pretty sure the url is ok too (If I try with another one I get a connection error)
Here my depedencies :
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
And they are exported as stated here in my pom (I can see maven is copying it when I deploye my app) :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals><goal>copy-dependencies</goal></goals>
</execution>
</executions>
</plugin>
So at this point I can't see what I've done wrong :/
Here is the error log I'm getting :
Starting process with command
java -cp target/classes:target/dependency/* test.Server
State changed from starting to up
org.hibernate.annotations.common.Version
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.9.Final}
org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
=== === DRIVER FOUND === ===
============================= EXPORT SCHEMA ==========================
org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000227: Running hbm2ddl schema export
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 2
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq]
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=paafeblgkhhbkx, password=**}
org.hibernate.tool.hbm2ddl.SchemaExport execute
ERROR: HHH000231: Schema export unsuccessful
java.sql.SQLException: No suitable driver found for jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq
at java.sql.DriverManager.getConnection(DriverManager.java:640)
at java.sql.DriverManager.getConnection(DriverManager.java:169)
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:193)
at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:55)
at org.hibernate.tool.hbm2ddl.DatabaseExporter.(DatabaseExporter.java:52)
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:367)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)
at persistance.SessionFactorySingleton.configureSessionFactory(SessionFactorySingleton.java:36)
at persistance.SessionFactorySingleton.getSessionFactory(SessionFactorySingleton.java:61)
at persistance.Controller.beginSession(Controller.java:24)
at persistance.Controller.sauvegarde(Controller.java:36)
at persistance.Controller.save(Controller.java:51)
at test.Server$1.handle(Server.java:44)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:86)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:589)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:561)
at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:137)
at sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:367)
at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:339)
at java.lang.Thread.run(Thread.java:679)
Thanks for your time !