Jul*_*nBe 3 java postgresql hibernate heroku
很抱歉打扰你,但我一直收到错误,我不明白为什么.
正如标题中所指定的,我正在尝试使用hibernate在运行heroku的postgresql数据库上进行连接.我的应用程序也在Heroku上运行.
它在本地模式下工作,我尝试了几个postgre驱动程序.
这是我的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>
Run Code Online (Sandbox Code Playgroud)
我收到会话时会覆盖网址,密码和用户名:
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);
Run Code Online (Sandbox Code Playgroud)
如您所见,找到了驱动程序.我很确定网址也可以(如果我尝试另一个网址,我会收到连接错误)
在这里我的依赖:
<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>
Run Code Online (Sandbox Code Playgroud)
它们按照我的pom中的说明导出(我可以看到maven在部署我的应用程序时正在复制它):
<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>
Run Code Online (Sandbox Code Playgroud)
所以在这一点上我看不出我做错了什么:/
这是我得到的错误日志:
使用命令启动进程
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)
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)
在java.lang.Thread.run(Thread.java:679)
谢谢你的时间 !
您的数据库网址存在一些可疑之处:
JDBC:在PostgreSQL:// paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq
分解:
postgresql- 好的paafeblgkhhbkx- 可疑PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com- 绝对错了.您显然试图将用户名和密码作为连接URL的一部分包含在内,但这不是它的完成方式.这些是使用单独的属性进行配置,如果你是要包括他们在URI,这是怎么了:
jdbc:postgresql://localhost/test?user=fred&password=secret
作为旁注,我已成功连接到您的数据库,因此除了正确的主机名外,我还可以证明您向公众公开的凭据的正确性.是时候更改密码了......
| 归档时间: |
|
| 查看次数: |
5874 次 |
| 最近记录: |