हाइबरनेट - java.lang.NoClassDefFoundError: org/slf4j/loggerFactory

मैंने हाइबरनेट और एचएसक्यूएलडीबी के साथ आसान प्रोग्राम चलाने की कोशिश की।

मैं log4j.properties के साथ इस प्रोजेक्ट के लिए log4j का उपयोग कर रहा हूं:

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=INFO, stdout

# Hibernate logging options (INFO only shows startup messages)
log4j.logger.org.hibernate=INFO

# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=INFO

और सभी चींटी के साथ निर्मित हैं, फ़ाइल बनाएं जिसे आप यहां देखें कर सकते हैं।

लेकिन जब मैं schemaexport लक्ष्य चलाता हूं तो मैंने अगली त्रुटि पकड़ी:

BUILD FAILED
/home/nazar_art/workspace/Persistance/build.xml:64: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

schemaexport त्रुटि

लेकिन मैंने slf4j का उपयोग क्यों नहीं किया है?

यहां मेरी सभी सामग्री के साथ lib फ़ोल्डर की सामग्री है जो इसका उपयोग करती है:

lib hitture

मुझे पता नहीं लगा कि ऐसा क्यों होता है?

यहां बेहतर परियोजना संरचना है:

प्रोजेक्ट मारा गया

संपादित करें:

मैंने slf4j-api-1.6.1.jar और slf4j-log4j12-1.6.1.jar जोड़ा लेकिन यह फेंकता है:

<�पी> असफल बनाया गया   /home/nazar_art/workspace/Persistance/build.xml:64:   java.lang.NoClassDefFoundError: javax/persistence/EntityListeners

आप यहां देख सकते हैं कि यह कैसा दिखता है:

इकाई श्रोताओं

इस समस्या को कैसे हल करें?

0
जोड़ा संपादित
विचारों: 1

2 उत्तर

हाइबरनेट आंतरिक रूप से लॉगिंग के लिए SLF4J का उपयोग करता है। यहां सेटअप निर्देश पढ़ें: http: //docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#tutorial-firstapp-setup आपको बिल्ड और रनटाइम पर SLF4J jar रखना होगा classpath।

0
जोड़ा
लेकिन इस लिंक पर maven निर्भरता केवल SLF4J, log4j के बिना। यह न केवल लॉगिंग के लिए मुखौटा क्यों करता है (विशेष रूप से log4j के लिए)?
जोड़ा लेखक nazar_art, स्रोत

हाइबरनेट अपने स्वयं के लॉगिंग करने के लिए आंतरिक रूप से SLF4J का उपयोग करता है। यह विभिन्न लॉगिंग कार्यान्वयन के शीर्ष पर एक अमूर्त परत है। इस मुखौटा का उपयोग करने जैसे फ्रेमवर्क क्योंकि इस मामले में आप अभी भी कुछ कार्यान्वयन से स्वतंत्रता रखते हैं। आप इसे log4j के साथ भी काम कर सकते हैं। इसे एक साथ काम करने के लिए यह ट्यूटोरियल का पालन करें ।

0
जोड़ा
मैंने इस ट्यूटोरियल से निर्देशों का पालन किया लेकिन एक और परेशानी पकड़ी। मैंने सवाल अपडेट किया।
जोड़ा लेखक nazar_art, स्रोत
अब आपको जेपीए एपीआई जार जोड़ने की जरूरत है ...
जोड़ा लेखक noone, स्रोत