2012-04-29 9 views
5

मैं HSQLDB और C3PO कनेक्शन पूल के साथ स्प्रिंग/हाइबरनेट के लिए एक हैलो वर्ल्ड चलाने की कोशिश कर रहा हूं। वही कोड mySQL (केवल अलग बोली और ड्राइवर के साथ) के साथ काम करता है'hibernate.dialect' सेट किया जाना चाहिए जब कोई कनेक्शन उपलब्ध नहीं है

मैंने डेटाबेस चलाया है और मैं इसे स्विंग जीयूआई से कनेक्ट कर सकता हूं। लेकिन जब मैं अपना आवेदन चलाने की कोशिश करता हूं, तो मुझे एक त्रुटि शुरू हो रही है।

1: यहाँ विवरण हैं त्रुटि -

जानकारी: आरंभ किया जा रहा स्प्रिंग जड़ WebApplicationContext [त्रुटि] [पूल-2-धागा -1 05:20:08] (JDBCExceptionReporter.java: logExceptions: 101) अंतर्निहित डेटाबेस से कनेक्शन प्राप्त नहीं किया जा सका! [ERROR] [पूल-2-थ्रेड -1 05:20:08] (ContextLoader.java:initWebApplicationContext2020) संदर्भ प्रारंभिक विफलता org.springframework.beans.factory.BeanCreationException: नाम 'sessionFactory' नाम से बीन बनाने में त्रुटि ServletContext संसाधन में [/WEB-INF/hibernate-context.xml]: init विधि का आमंत्रण विफल हुआ; नेस्टेड अपवाद org.hibernate.HibernateException है: 'hibernate.dialect' सेट होना चाहिए जब org.springframework.beans पर org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1420) पर आते कोई कनेक्शन .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" /> 

उत्तर

0

मैं के साथ सत्र का कारखाना गुण hibernate. उपसर्ग।

<property name="hibernateProperties"> 
    <value> 
     hibernate.dialect=org.hibernate.dialect.HSQLDialect 
     hibernate.hbm2ddl.auto=update 
     hibernate.show_sql=false 
     hibernate.format_sql=false 
    </value> 
</property> 
+0

आश्चर्यजनक रूप से यह कुछ किया। समस्या को ठीक नहीं करें लेकिन अब मुझे मिलता है: [ERROR] [पूल-2-थ्रेड -1 06:03:04] (जेडीबीसीएक्सप्शन रिपेटर.जेवा :logExceptions:101) कनेक्शन अंतर्निहित डेटाबेस से प्राप्त नहीं किया जा सका !, लेकिन मैं हूं यकीन है कि इसके नीचे छिपी हुई वास्तविक समस्या से इसका कोई लेना-देना नहीं है। – Gleeb

+0

@gleeb अपने एचएसक्यूएल डीबी से कनेक्ट करने के लिए जेडीबीसी का उपयोग करके एक साधारण प्रोग्राम लिखें और देखें कि क्या यह काम करता है। वह कम से कम एक समस्या को खत्म कर सकता है – Sudhakar

+0

सर्वर को चुप = झूठी से चलाएं और कनेक्शन प्रयास की जांच करें।कोशिश करें पी: उपयोगकर्ता = "एसए" – fredt

1

जहां तक ​​मेरा बता सकते हैं, यह संभव नहीं है, एक वसंत सत्र फैक्टरी के hibernateProperties मैदान पर सेट कम से कम अगर आप भी इस पर configLocation संपत्ति का उपयोग कर रहे एक मूल्य के रूप में बोली में पारित करने के लिए है।

मेरे hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 

    <property name="hibernate.dialect">org.hibernate.dialect.DB2Dialect</property> 
    <property name="hibernate.search.autoregister_listeners">false</property> 
    [etc...] 

मेरे प्रासंगिक सत्र कारखाने संदर्भ config:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="configLocation"> 
     <value>classpath:hibernate.cfg.xml</value> 
    </property> 
    <property name="dataSource" ref="dataSource"/> 
     <property name="hibernateProperties"> 
     <props> 
      <!--<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>--> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.format_sql">true</prop> 
      <prop key="hibernate.generate_statistics">false</prop> 
      <prop key="hibernate.default_schema">xxx</prop> 
     </props> 
    </property> 
</bean> 

मैं संदर्भ फ़ाइल में बोली प्रोप uncomment, और में से इसे बाहर टिप्पणी तो hibernate.cfg.xml फ़ाइल मुझे ओपी के रूप में एक ही अपवाद का सामना करना पड़ता है:

Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set 

हालांकि अगर मैं वें ई कॉन्फ़िगरेशन (संदर्भ फ़ाइल में टिप्पणी की गई है, hibernate.cfg.xml में असम्बद्ध), यह काम करता है, और मैं स्वरूपित हाइबरनेट एसक्यूएल देखता हूं, यह दर्शाता है कि अन्य हाइबरनेट गुण संदर्भ फ़ाइल द्वारा सेट किए जा रहे हैं।

संबंधित मुद्दे