3

お手数をおかけして申し訳ありませんが、エラーが発生し続けますが、その理由がよくわかりません。

タイトルで指定されているように、休止状態を使用して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>

セッションを取得すると、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で試してみると、接続エラーが発生します)

ここで私の依存関係:

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

そして、それらは私の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>

したがって、この時点では、自分が何を間違えたのかわかりません:/

これが私が得ているエラーログです:

コマンドでプロセスを開始するjava -cp target/classes:target/dependency/* test.Server

状態が起動中から起動中になりました

org.hibernate.annotations.common.Version

INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}

org.hibernate.Version ログバージョン

INFO: HHH000412: Hibernate Core {4.1.9.Final}

org.hibernate.cfg.環境

情報: 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 実行

INFO: HHH000227: hbm2ddl スキーマ エクスポートを実行しています

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl 構成

INFO: HHH000402: Hibernate 組み込み接続プールを使用しています (本番用ではありません!)

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl 構成

情報: HHH000115: Hibernate 接続プール サイズ: 2

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl 構成

情報: HHH000006: 自動コミット モード: false

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl 構成

情報: HHH000401: URL [jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq] でドライバー [org.postgresql.Driver] を使用しています

org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl 構成

INFO: HHH000046: 接続プロパティ: {user=paafblgkhhbkx, 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) で

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

persistance.SessionFactorySingleton.getSessionFactory (SessionFactorySingleton.java:61) で

persistance.Controller.beginSession(Controller.java:24) で

persistance.Controller.sauvegarde (Controller.java:36) で

persistance.Controller.save で (Controller.java:51)

test.Server$1.handle(Server.java:44) で

com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83) で

sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83) で

com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:86) で

sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:589) で

com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:83) で

sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:561) で

sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:137) で

sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:367) で

sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:339) で

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

御時間ありがとうございます !

4

1 に答える 1

7

データベースの URL に非常に疑わしい点があります。

jdbc:postgresql://paafeblgkhhbkx:PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com:5432/d1vsgjgnfr1koq

壊す:

  • JDBC スキーム: postgresql– OK
  • ホスト名: paafeblgkhhbkx– 疑わしい
  • ポート: PhZEtHl2RHwbWDQJJOurmej89-@ec2-54-243-243-252.compute-1.amazonaws.com– 明らかに間違っています。

接続 URL の一部としてユーザー名とパスワードを含めようとしているようですが、それはその方法ではありません。これらは個別のプロパティを使用して構成され、それらを URI に含める場合は、次のようになります。

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


補足として、私はあなたのデータベースに正常に接続したので、正しいホスト名に加えて、あなたが一般に公開した認証情報が正しいことを証明できます. そのパスワードを変更する時が来ました...

于 2013-02-10T14:08:49.810 に答える