2012-12-20 43 views
9

मुझे एक सीएक्सएफ/हाइबरनेट/जेबॉस आधारित प्रोजेक्ट मिला है जिसमें database.xsd नामक एक फ़ाइल नाम शामिल है। मैंने प्रोजेक्ट को यह पता लगाने के लिए प्रोजेक्ट किया कि सिस्टम में कौन सा सबसिस्टम/घटक database.xsd का उपयोग करता है लेकिन जिसने WAR फ़ाइल (webapp-cache.xml) बनाने के लिए मेवेन-वॉर-प्लगइन द्वारा उपयोग की जाने वाली फ़ाइल में केवल एक संदर्भ दिया।कौन सा फ्रेमवर्क, टूल या प्लगइन हार्डकोडेड 'डेटाबेस.एक्सएसडी' फ़ाइल नाम जनादेश देता है?

मेरे लिए यह सुझाव देता है कि database.xsd कुछ फ्रेमवर्क या प्लगइन द्वारा अपेक्षित कुछ मानक फ़ाइल नाम है। लेकिन यह कौन है? हाइबरनेट? CXF? अन्य?

क्या ऐसे दस्तावेज हैं जो वास्तव में पैकेज पर database.xsd की भूमिका का वर्णन करते हैं जो उस पर निर्भर करता है?

अद्यतन: अस्थायी रूप से database.xsd को दूर करने और पुनर्निर्माण के लिए कोशिश कर रहा है, कई संकलन त्रुटियों कि एक पैकेज *.hbm.xml डीटीओ फ़ाइलों द्वारा संदर्भित का उपयोग कर एक सिद्धांत XML2SQL.java फ़ाइल करने के लिए नेतृत्व में हुई। यह मुझे बताता है कि अपराधी है ... हाइबरनेट!

+5

एक कठिन कुकी की तरह दिखता है क्योंकि Google को grepping कुछ भी प्रासंगिक नहीं है: ["database.xsd" साइट: ggocode.gl/dUSoc)। क्या आप वाकई एक हार्ड-कोडेड मान हैं? –

+1

क्या आप इस फ़ाइल को संदर्भित करने वाले मेवेन भाग को पोस्ट कर सकते हैं और इस फ़ाइल के स्थान को भी अपनी परियोजना के भीतर पोस्ट कर सकते हैं? – forhas

+1

@forhas अगर मेरे पास इस परियोजना में कहीं भी मेरे प्रोजेक्ट (pom.xml सहित) का संदर्भ था, तो मैं इस सवाल से नहीं पूछूंगा। :) मैं स्ट्रिंग 'डेटाबेस.xsd' के लिए पूरी परियोजना निर्देशिका संरचना (recursively!) Grep-ed - कोई फायदा नहीं हुआ। यही कारण है कि यह मेरे लिए एक रहस्य है। क्या मैं वास्तव में उपयोग किए जा रहे ढांचे में से एक में हार्डकोड किया गया है? क्या यह प्रोजेक्ट के लेखक तक है और एक अंतर्निहित '.xsd' एक्सटेंशन कहीं भी जोड़ा गया है? मुझे नहीं पता। 0 डेटाबेस को निकालने के लिए 0 अस्थायी रूप से (अस्थायी रूप से) विचार प्रदान करने के लिए – Withheld

उत्तर

4

यह हाइबरनेट है क्योंकि अस्थायी रूप से database.xsd को दूर करने और पुनर्निर्माण के लिए कोशिश कर रहा है, कई संकलन त्रुटियों कि एक पैकेज *.hbm.xml डीटीओ फ़ाइलों केवल द्वारा संदर्भित का उपयोग कर एक सिद्धांत XML2SQL.java फ़ाइल करने के लिए नेतृत्व में हुई। (ऊपर अपडेट देखें)

1

मैं इसे "पुराने तरीके से", अच्छा लॉगिंग + एक बाइनरी खोज दृष्टिकोण तक पहुंचूंगा।

एक परीक्षण वातावरण में पहली:

1) सुनिश्चित करें कि आपके कोड बनाने log4j का उपयोग करने के लिए सेटअप है और पर सबसे व्यापक लॉगिंग स्तर है।

2) डेटाबेस.एक्सएसडी हटा दिए जाने के साथ, असफलता के लगभग "आधा रास्ता बिंदु" निर्धारित करें। उदाहरण के लिए, सिस्टम सेटअप के साथ सही तरीके से कहें कि यह लॉगिंग की 1000 लाइनें उत्पन्न करता है। डेटाबेस.एक्सएसडी हटाए जाने के साथ यह लॉगिंग की केवल 500 लाइनों के साथ लोड और रोकता है। लॉगिंग को देखते हुए, निर्धारित करें कि कौन से वर्ग/विधियां बुलाई जा रही हैं। (डेटाबेस.एक्सएसडी को हटाने के बजाए इसके साथ काम करने का एक और तरीका है अपने परीक्षण पर्यावरण में सिंटैक्स त्रुटियों के साथ एक प्रतिलिपि प्रस्तुत करना।)

3) चरण 2 में आपके अध्ययन के साथ और अधिक लॉगिंग जोड़ें और अधिक कैप्चर करने के लिए प्रयास करें/कैच करें जानकारी। यदि यह आपको लक्ष्य को कम करने की अनुमति नहीं देता है। "250 लॉगिंग लाइन" बिंदु पर ध्यान केंद्रित, दोहराएं। जब तक आपको लक्षित कक्षाएं नहीं मिल जातीं तब तक हर बार आधे में समस्या स्थान काटने जारी रखें।

कई जावा प्रोग्राम मैंने "खुश पथ" के लिए सिर्फ कोड देखा है और त्रुटियों को पकड़ने और लॉग करने के लिए शीर्ष स्तर के अपवाद हैंडलिंग पर भरोसा किया है, लेकिन इससे बहुत मोटी (बड़ी संख्या में रेखाएं) हो सकती हैं और लॉगिंग एंट्राइल्स पढ़ने में मुश्किल हो सकती है फ़ाइलें।

+0

+1 में चिमिंग के लिए +1।xsd' और देखें कि क्या होता है ... अच्छा, प्रोजेक्ट सफलतापूर्वक निर्माण नहीं करेगा इसलिए 'log4j' लॉगिंग प्रासंगिक नहीं है। इसके बजाए, निर्माण कई संकलन त्रुटियों को दिखाता है जिसमें एक निश्चित तालिका का पैकेज मौजूद नहीं होता है (यहां विस्तार से जाने के लिए भी आवेदन-विशिष्ट)। केवल 3 जावा फाइलें या तो इसका उत्पादन करती हैं * "पैकेज मौजूद नहीं है" * या * "प्रतीक नहीं मिल सकता" * त्रुटि। पीओजेओ को एक्सएमएल वायरिंग के सीएक्सएफ/स्प्रिंग तरीके के कारण, यह कहना मेरे लिए अभी भी बहुत मुश्किल है कि कौन सा ढांचा इस कारण बनता है। अतिरिक्त विचार? – Withheld

+0

मैं आगे बढ़ूंगा और इसे सफलतापूर्वक निर्माण कर दूंगा, फिर इसे xsd फ़ाइल में "खराब वाक्यविन्यास" वाले परीक्षण वातावरण में चलाएं। आपको जो त्रुटियां मिलती हैं, उन्हें आपको थोड़ा और कम करने देना चाहिए। –