2010-08-11 13 views
5

मैं ग्लासफ़िश 3.0.1 पर जेपीए के साथ हाइबरनेट 3.5.3 सेट करने की कोशिश कर रहा हूं;हाइबरनेट और ग्लासफ़िश के साथ log4j का उपयोग कर 3.0.1

मैं नेटबीन्स 6.9.1 एंटरप्राइज़ प्रोजेक्ट का उपयोग कर रहा हूं; मैं सभी आवश्यक हाइबरनेट फ़ाइलों जोड़ा गया है और सब कुछ प्रवेश करने को छोड़कर ठीक है ...

मैं परियोजना classpath डॉक्स की तरह कहते हैं (सूचीबद्ध केवल लॉग संबंधित जार) निम्नलिखित को जोड़ा गया:

-slf4j-api- 1.5.8.jar

-slf4j-log4j12-1.5.8.jar

-log4j-1.2.16.jar

-log4j.properties जो दिखाई देता है:

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} %5p %c{1}:%L - %m%n 

log4j.rootLogger=info, stdout 

log4j.logger.org.hibernate.test=info 
log4j.logger.org.hibernate.tool.hbm2ddl=debug 

मैंने -Dlog4j.debug JVM प्रॉपर्टी का उपयोग करके डीबग सक्रिय भी किया।

जैसे ही मुझे लगता है मैं सर्वर लॉग में इस मिल को तैनात के रूप में:

SEVERE: log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable. 
SEVERE: log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
SEVERE: log4j:ERROR [EarLibClassLoader : 
urlSet = [URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/antlr-2.7.6.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/commons-collections-3.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/dom4j-1.6.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/gwt-servlet.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/hibernate-jpa-2.0-api-1.0.0.Final.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/hibernate3.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/javassist-3.9.0.GA.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/jta-1.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/log4j-1.2.16.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/slf4j-api-1.5.8.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/slf4j-log4j12-1.5.8.jar] 
doneCalled = false 
Parent -> [email protected] 
] whereas object of type 
SEVERE: log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [EarLibClassLoader : 
urlSet = [URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/antlr-2.7.6.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/commons-collections-3.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/dom4j-1.6.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/gwt-servlet.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/hibernate-jpa-2.0-api-1.0.0.Final.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/hibernate3.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/javassist-3.9.0.GA.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/jta-1.1.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/log4j-1.2.16.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/slf4j-api-1.5.8.jar, URLEntry : file:/C:/Users/Bogdan/Documents/NetBeansProjects/GwtCms/dist/gfdeploy/GwtCms/lib/slf4j-log4j12-1.5.8.jar] 
doneCalled = false 
Parent -> [email protected] 
]. 
SEVERE: log4j:ERROR Could not instantiate appender named "stdout". 
SEVERE: log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). 
SEVERE: log4j:WARN Please initialize the log4j system properly. 
SEVERE: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

मैं इसे इस तरह ठीक है पर कोई भी विचार? धन्यवाद!

SEVERE: org/apache/log4j/Level 
java.lang.NoClassDefFoundError: org/apache/log4j/Level 
     at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223) 
     at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120) 
     at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111) 
     at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269) 

EDIT2::

संपादित

मैं के रूप में तुषार तरकस सुझाव अपने प्रोजेक्ट से log4j निकालने का प्रयास किया समाधान

मैं पता नहीं क्यों, लेकिन अगर मैं लॉग 4j-1.2.16.jar फ़ाइल/डोमेन/डोमेन 1/lib में कॉपी करें यह काम कर रहा है।

EDIT3:

पास्कल, यहाँ क्या GF तैनात है।

EnterpriseApplication1-ejb_jar > 
    .netbeans_automatic_build 
    .netbeans_update_resources 
    ejbs // classes for EJB 
    entities // classes for entities 
    log4j.properties 
    META-INF 
EnterpriseApplication1-war_war > 
    index.jsp 
    META-INF 
    WEB-INF 
META-INF 
lib > 
    antlr-2.7.6.jar 
    commons-collections-3.1.jar 
    dom4j-1.6.1.jar 
    hibernate-jpa-2.0-api-1.0.0.Final.jar 
    hibernate3.jar 
    javassist-3.9.0.GA.jar 
    jta-1.1.jar 
    log4j-1.2.16.jar 
    slf4j-api-1.5.8.jar 
    slf4j-log4j12-1.5.8.jar 
+0

log4j.jar को हटाने निश्चित रूप से एक समाधान नहीं है। लेकिन मैं जानना चाहता हूं कि आप इसे कैसे पैकेज करते हैं। –

+0

पास्कल मेरा आखिरी संपादन देखें :) – Bogdan

+0

वैसे भी, मैंने हाइबरनेट + जीएफ + एनबी स्थापित करने के बारे में एक ट्यूटोरियल लिखा है। मैं अभी भी जीएफ 3 के साथ log4j काम करने के बेहतर तरीके से रूचि रखता हूं। ट्यूटोरियल यहां पाया जा सकता है: http://bogdantanaseit.blogspot.com/2010/08/hibernate-jpa-20-on-glassfish-v3-with.html – Bogdan

उत्तर

2

मुझे इसी तरह की समस्या से संबंधित कुछ चर्चाएं मिल सकती हैं। समस्या ग्लासफ़िश संस्करण 3 और ऊपर के साथ है। कक्षाएं विभिन्न वर्ग लोडरों द्वारा लोड की जाती हैं।

this देखें।

+0

इनपुट के लिए धन्यवाद। मैंने उस चर्चा को देखा है लेकिन उन्हें एक संकल्प नहीं मिला। कोई विचार अगर मैं इसे ठीक करने के लिए ग्लासफ़िश या log4j में "कुछ" सेट कर सकता हूं? – Bogdan

+0

अपने अनुप्रयोग lib निर्देशिका से log4j की जार फ़ाइल को हटाने का प्रयास करें। ग्लासफ़िश में पहले से ही log4j है जो यह आंतरिक रूप से उपयोग करता है। –

+0

नहीं। यह काम नहीं करता है। मेरा संपादन देखें। – Bogdan

0

ग्लासफ़िश के साथ एप्लिकेशन-विशिष्ट क्लासलोडिंग का उपयोग करने का प्रयास करें।

log4j.jar को [ग्लासफ़िश-इंस्टॉल-डिर] में रखें। [पथ-से-DOMAIN]/lib/applibs। तुम भी बातें साफ रखने के लिए एक नया निर्देशिका बना सकते हैं: [Glassfish-इंस्टॉल-डिर] [पथ डोमेन-हेतु-]/lib/applibs/MY_APPLICATIONS_DEPENDENCIES

के बाद क्या किया है आप लोड करने के लिए निर्दिष्ट करने के लिए है। लॉग 4j जब आप अपना आवेदन तैनात करते हैं। दो विकल्प हैं: 1. व्यवस्थापक कंसोल/वेब इंटरफ़ेस: विकल्प मुक्तियों में लॉग 4j के लिए जानकारी भरें 2. ---- पुस्तकालय विकल्प के साथ asadmin तैनाती कमांड का उपयोग करें और अल्पविराम से अलग पथ निर्दिष्ट करें। विवरण के लिए, ओरेकल ग्लासफ़िश सर्वर 3.1-3.1.1 संदर्भ मैनुअल देखें। (ओरेकल ग्लासफ़िश सर्वर 3 से उद्धृत।1 आवेदन विकास गाइड)

+0

अब आप अपने आवेदन के साथ log4j.jar को तैनात नहीं करते हैं। –

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