私はHello Worldを実行しようとしています:HSQLDBとC3PO接続プールのSpring/Hibernate。 同じコードがmySQLで動作します(異なる方言とドライバでのみ)Connectionが利用できない場合は、 'hibernate.dialect'を設定する必要があります。
私はデータベースを実行しました。私はそれをswing GUIで接続できます。しかし、アプリケーションを実行しようとすると、起動エラーが発生します。
1: ここで詳細なエラー -
INFO:初期スプリングルートWebApplicationContext [ERROR] [プール-2-スレッド-1五時20分08秒](JDBCExceptionReporter.java: logExceptions:101)基になるデータベースから接続を取得できませんでした。 [エラー] [プール2スレッド1 05:20:08](ContextLoader.java:initWebApplicationContext:220)コンテキストの初期化に失敗しました org.springframework.beans.factory.BeanCreationException: 'sessionFactory'という名前のBeanを作成中にエラーが発生しましたServletContextリソース[/WEB-INF/hibernate-context.xml]:initメソッドの呼び出しに失敗しました。ネストされた例外はorg.hibernate.HibernateExceptionです:Connectionが使用可能でない場合、 'hibernate.dialect'を設定する必要があります。 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) at org.springframework.beans .factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ... ...
2:休止状態-のcontext.xml -
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.gleeb.sample.model" />
<property name="hibernateProperties">
<props>
<!-- <prop key="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> -->
<prop key="dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="show_sql">false</prop>
<prop key="hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" p:driverClass="org.hsqldb.jdbc.JDBCDriver"
p:jdbcUrl="jdbc:hsqldb:hsql://localhost/testdb" p:user="sa"
p:password="" p:acquireIncrement="5" p:idleConnectionTestPeriod="60"
p:maxPoolSize="100" p:maxStatements="50" p:minPoolSize="10" />
<!-- Declare a transaction manager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />
驚いたことに、何かしました。 [ERROR] [プール2スレッド1 06:03:04](JDBCExceptionReporter.java:logExceptions:101)接続は基盤となるデータベースから取得できませんでしたが、私は問題を解決しませんでした。そこに隠れている本当の問題とは何の関係もないのです。 – Gleeb
@gleeb JDBCを使って簡単なプログラムを書いてHSQL DBに接続し、それが動作するかどうかを確認します.1つの問題を少なくとも削除できます – Sudhakar
silent = falseでサーバを実行し、接続の試みを確認してください。p:user = "SA"を試してください – fredt