2013-08-08 11 views
24

मैं अपने MySQL डेटाबेस के साथ काम करने के लिए हिबरनेट 4.3 प्राप्त करने का प्रयास कर रहा हूं। मैं ग्रहण में हाइबरनेट कोड जनरेशन टूल का उपयोग करने में पहले से ही सक्षम हूं और मैं हाइबरनेट कॉन्फ़िगरेशन टूल का उपयोग कर डेटाबेस से कनेक्ट करने में भी सक्षम हूं।हाइबरनेट 4 जावैक्स/लेनदेन/सिस्टम अपवाद त्रुटि

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2248) 
at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214) 
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:184) 
at be.comp.permanenties.HibernateUtil.<clinit>(HibernateUtil.java:15) 
at be.comp.dao.balie.ZitdagenDAOMySQL.findByMaCode(ZitdagenDAOMySQL.java:31) 
at be.comp.permanenties.Main.main(Main.java:19) 
Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 8 more 

मेरी HibernateUtil.java फ़ाइल में कोड है::

import org.apache.commons.lang3.SystemUtils; 
import org.hibernate.HibernateException; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 

public class HibernateUtil { 

private static final SessionFactory sessionFactoryBalie = new Configuration().configure("mysql_balie.cfg.xml").buildSessionFactory(); 

public static SessionFactory getSessionFactoryBalie() { 
    return sessionFactoryBalie; 
} 

} 

हालांकि जब मैं अपने मुख्य वर्ग है कि डेटाबेस मैं निम्नलिखित त्रुटि मिलती है प्रश्नों में कोड चलाने का प्रयास mysq_balie.cfg.xml फ़ाइल लगता है:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 

    <!-- Development --> 

    <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/balie?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=iso-8859-1</property> 
    <property name="hibernate.connection.username">username</property> 
    <property name="hibernate.connection.password">password</property> 
    <property name="hibernate.default_catalog">db</property> 

    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 

    <!-- JDBC connection pool (use the built-in) --> 
    <property name="hibernate.connection.pool_size">1</property> 

    <!-- Enable Hibernate's automatic session context management --> 
    <property name="hibernate.current_session_context_class">thread</property> 
    <!-- <property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>--> 

    <!-- Disable the second-level cache --> 
    <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

    <!-- Echo all executed SQL to stdout --> 
    <property name="hibernate.show_sql">true</property> 

    <!-- Drop and re-create the database schema on startup --> 
    <property name="hibernate.hbm2ddl.auto">update</property> 

    <!-- List of XML mapping files --> 
    <mapping resource="be/comp/model/balie/Zitdagen.hbm.xml"/> 
</session-factory> 

मैं यह पता लगाने में असमर्थ हूं कि त्रुटि कहां हो सकती है। सभी मदद का स्वागत है। धन्यवाद।

उत्तर

51

आप इस डीईपी जोड़ने Maven साथ jta.jar
याद कर रहे हैं:

<dependency> 
     <groupId>javax.transaction</groupId> 
     <artifactId>jta</artifactId> 
     <version>1.1</version> 
    </dependency> 

या Maven भंडार से डाउनलोड करने और अपने CLASSPATH में जोड़ने

+0

Gr8 .. यह 5.0.6.Final में बग 5.0.7.Final –

5

जवाब से ऊपर Maven आवेदन के लिए सही है। लेकिन सामान्य अनुप्रयोगों में आप jta-1.1.jar नामक एक जार फ़ाइल जोड़ते हैं।

-> यदि आप 3.x संस्करण का उपयोग कर रहे हैं, जो आपके डाउनलोडिंग हाइबरनेट वितरण जार के फ़ोल्डर पथ के तहत उपलब्ध है जिसे lib/required/jta-1.1.jar कहा जाता है।

-> अपने हाइबरनेट 4.x संस्करण का उपयोग करते हैं, तो यह है कि वितरण फ़ोल्डर पथ कहा जाता dlist/lib/प्रदान की/JTA-1.1.jar के तहत उपलब्ध है

+0

में तय हाइबरनेट 4.3 में यह फ़ाइल 'jboss-लेन-देन api_xxx.jar' – Johanna

+0

बहुत धन्यवाद @subbaReddy –

+0

@Johanna जहां में पाया जाता है किया गया था क्या आपको हाइबरनेट 5.1 में यह जार (jboss-cred-api_xxx.jar) लगता है? या किसी भी अन्य जार को 5.1 रिलीज में jboss-cred-api_xxx.jar बदल दिया गया है? – mannedear

1

आप प्रयोग नहीं कर रहे हैं, तो Maven/Gradle, आसान जार फ़ाइल की बजाय पूरे बंडल को एक-एक करके डाउनलोड करना है।

http://hibernate.org/orm/downloads/ पर जाएं और नवीनतम लाइब्रेरी डाउनलोड करें, required फ़ोल्डर से जार निकालें।

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