我试图运行hello world:Spring/Hibernate with HSQLDB和C3PO连接池。 相同的代码与MySQL的工作(只有不同的方言和驱动程序)当没有连接可用时,必须设置'hibernate.dialect'
我已经运行数据库,我可以连接到它的摆动GUI。但是当我尝试运行我的应用程序时,出现启动错误。 下面是详细信息:
1:错误 -
INFO:初始化弹簧根的WebApplicationContext [错误] [池-2-线程1 5时20分08秒](JDBCExceptionReporter.java: logExceptions:101)无法从底层数据库获取连接! [错误] [pool-2-thread-1 05:20:08](ContextLoader.java:initWebApplicationContext:220)上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建bean名称为'sessionFactory'时定义错误在ServletContext资源中[/WEB-INF/hibernate-context.xml]:调用init方法失败;当org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) 位于org.springframework.beans时,必须设置'hibernate.dialect'。 .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" />
令人惊讶的是,它做了一些事情。没有解决问题,但现在我得到: [错误] [池2线程1 06:03:04](JDBCExceptionReporter.java:logExceptions:101)连接无法从底层数据库获得!,但我是确定它与隐藏在那里的真正问题无关。 – Gleeb 2012-04-29 15:04:13
@gleeb使用JDBC编写一个简单的程序连接到您的HSQL DB,看看是否有效。这可以至少消除一个问题 – Sudhakar 2012-04-29 15:09:23
用silent = false运行服务器并检查连接尝试。试用p:user =“SA” – fredt 2012-04-29 21:31:32