没有合适的司机。 尝试使用Hibernate连接到Heroku上的postgresql数据库

很抱歉打扰你,但我一直收到错误,我真的不明白为什么。

正如标题中所指定的,我正在尝试使用hibernate在运行heroku的postgresql数据库上进行连接。 我的应用程序也在Heroku上运行。

它在本地模式下工作,我尝试了几个postgre驱动程序。

这是我的hibernate.cfg.xml:

 jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq paafeblgkhhbk My password org.postgresql.Driver org.hibernate.dialect.PostgreSQLDialect  org.hibernate.cache.internal.NoCacheProvider  true  create 

我收到会话时会覆盖url,密码和用户名:

 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); 

如您所见,找到了驱动程序。 我很确定url也可以(如果我尝试另一个url,我会收到连接错误)

在这里我的依赖:

  org.hibernate hibernate-core 4.1.9.Final   postgresql postgresql 9.1-901.jdbc4  

它们按照我的pom中的说明导出(我可以看到maven在部署我的应用程序时正在复制它):

  org.apache.maven.plugins maven-dependency-plugin 2.4   copy-dependencies package copy-dependencies    

所以在这一点上我看不出我做错了什么:/

这是我得到的错误日志:

使用命令java -cp target/classes:target/dependency/* test.Server启动进程java -cp target/classes:target/dependency/* test.Server

国家从开始变为上升

org.hibernate.annotations.common.Version

信息:HCANN000001:Hibernate Commons Annotations {4.0.1.Final}

org.hibernate.Version logVersion

信息:HHH000412:Hibernate Core {4.1.9.Final}

org.hibernate.cfg.Environment中

信息:HHH000206:找不到hibernate.properties

org.hibernate.cfg.Environment buildBytecodeProvider

信息:HHH000021:字节码提供程序名称:javassist

org.hibernate.cfg.Configuration配置

信息:HHH000043:从资源配置:/hibernate.cfg.xml

org.hibernate.cfg.Configuration getConfigurationInputStream

信息:HHH000040:配置资源:/hibernate.cfg.xml

org.hibernate.cfg.Configuration doConfigure

信息:HHH000041:已配置的SessionFactory:null

=== ===找到了驾驶员=== ===

=============================出口计划=================== =======

的org.hibernate.dialect.Dialect

信息:HHH000400:使用方言:org.hibernate.dialect.PostgreSQLDialect

org.hibernate.tool.hbm2ddl.SchemaExport执行

信息:HHH000227:运行hbm2ddl架构导出

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

信息:HHH000402:使用Hibernate内置连接池(不供生产使用!)

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

信息:HHH000115:Hibernate连接池大小:2

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

信息:HHH000006:自动提交模式:false

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

信息:HHH000401:在URL上使用驱动程序[org.postgresql.Driver] [jdbc:postgresql:// paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432 / d1vsgjgnfr1koq]

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure

信息:HHH000046:连接属性:{user = paafeblgkhhbkx,password = * *}

org.hibernate.tool.hbm2ddl.SchemaExport执行

错误:HHH000231:架构导出失败

java.sql.SQLException:没有为jdbc找到合适的驱动程序:postgresql:// paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432 / d1vsgjgnfr1koq

在java.sql.DriverManager.getConnection(DriverManager.java:640)

在java.sql.DriverManager.getConnection(DriverManager.java:169)

在org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:193)

在org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:55)

在org.hibernate.tool.hbm2ddl.DatabaseExporter。(DatabaseExporter.java:52)

在org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:367)

在org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:304)

在org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:293)

at persistance.SessionFactorySingleton.configureSessionFactory(SessionFactorySingleton.java:36)

在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)

在java.lang.Thread.run(Thread.java:679)

谢谢你的时间 !

您的数据库url存在一些可疑之处:

JDBC:在PostgreSQL:// paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432 / d1vsgjgnfr1koq

分解:

  • JDBC方案: postgresql – 好的
  • 主机名: paafeblgkhhbkx – 可疑
  • port: PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com – 绝对错了。

您显然试图将用户名和密码作为连接URL的一部分包含在内,但事实并非如此。 这些是使用单独的属性配置的,如果您要将它们包含在URI中,请按以下方式操作:

jdbc:postgresql://localhost/test?user=fred&password=secret


作为旁注,我已成功连接到您的数据库,因此除了正确的主机名外,我还可以certificate您向公众公开的凭据的正确性。 是时候更改密码了……