2008-10-10 4 views
5

ग्रहण (गैनीमेड) में स्रोत समस्या संलग्न करें मैं कुछ कोड डीबग कर रहा हूं जो अपाचे कॉमन्स एचटीपी क्लाइंट का उपयोग करता है और एचटीपी क्लाइंट कोड में कदम उठाना चाहता है। मैंने सोर्स कोड डाउनलोड किया है और इसे सामान्य फैशन में संलग्न करने की कोशिश की है (विधि नाम पर CTRL- क्लिक करें और अटैचमेंट सोर्स बटन का उपयोग करें)। मैंने बिना किसी सफलता के बाहरी फाइल और बाहरी फ़ोल्डर दोनों को संलग्न करने का प्रयास किया है। मैंने बिना किसी समस्या के पहले स्रोत संलग्न किया है और वर्तमान में हाइबरनेट स्रोत कोड में सफलतापूर्वक कदम उठा सकता है।ग्रहण

मैंने मैन्युअल रूप से सोर्सपाथ जोड़ने के लिए सीधे .classpath फ़ाइल को संपादित करने का भी प्रयास किया है। अभी भी कोई भाग्य नहीं है। प्रोजेक्ट को रीफ्रेश करना, स्वच्छ निर्माण करना, बंद करना और ग्रहण को फिर से खोलना इस मुद्दे को हल नहीं करता है। निराशाजनक रूप से, ग्रहण कोई त्रुटि संदेश प्रदान नहीं करता है; यह सिर्फ स्रोत संलग्न नहीं करता है।

यहाँ .claspath में प्रविष्टियों हैं:

<!-- Hibernate. Works --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/hibernate.jar" sourcepath="D:/Data/Download/hibernate-3.2.2.ga/hibernate-3.2/src"/> 

<!-- Commons HttpClient. Will not attach --> 
<classpathentry kind="lib" path="/myEAP/EarContent/APP-INF/lib/commons-httpclient.jar" sourcepath="D:/Data/Download/commons-httpclient-3.1/src/java"/> 

मैं डी करने के लिए पथ को बदलने की कोशिश की है: /Data/Download/commons-httpclient-3.1/src और है कि या तो काम नहीं करता।

निर्देशिका संरचना है:

D 
    Data 
    Download 
     commons-httpclient-3.1 
     src 
      java 
      org 
       apache 
       commons 
        httpclient 
        AutoCloseInputStream.java 
        ... (and so forth) 
+0

क्या आप दृश्यमान (मार्कअप के बाद) देखने के लिए .classpath प्रविष्टियों को दोबारा सुधार सकते हैं? –

उत्तर

6

इसे शीर्ष स्तर पैकेज वाले सीधे निर्देशिका में इंगित करने का प्रयास करें, "D: /Data/Download/commons-httpclient-3.1/src/java" आपके लिए। मेरे लिए क्या काम किया गया एक नया src ज़िप फ़ाइल बना रहा था जिसमें "संगठन" फ़ोल्डर और उसके नीचे सबकुछ शामिल था।

यहाँ मेरी .classpath प्रविष्टि, मामले में (जो मेरे लिए काम करता है) यह मदद करता है:

<classpathentry kind="lib" path="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1.jar" sourcepath="/blib/java/commons-httpclient-3.1/commons-httpclient-3.1-src.zip"/> 
2

कोशिश src.zip बजाय संलग्न अनज़िप src की?

+0

पहले कोशिश की। धन्यवाद। –

+0

कितना अजीब! सौभाग्य। – JeeBee

+0

धन्यवाद, मुझे लगता है कि मैं यूरोपा में परियोजना खोलने का प्रयास कर सकता हूं। –

2

अपने प्रक्षेपण के विन्यास का स्रोत पथ में जोड़कर देखें।

1

क्लासपाथ पर लाइब्रेरी में कदम उठाने के लिए आवश्यक स्रोत नहीं है; वह पुस्तकालय भी डीबग प्रतीकों के साथ संकलित किया जाना चाहिए। यह आमतौर पर कोई समस्या नहीं है, क्योंकि अधिकांश जावा पुस्तकालयों को इस तरह के फैशन में संकलित और वितरित किया जाता है, लेकिन जैसा कि आपने पाया है, उनमें से कुछ नहीं हैं।

यह ध्यान रखना दिलचस्प है कि आप वास्तव में स्रोत संलग्न किए बिना बाहरी पुस्तकालयों में भी कदम उठा सकते हैं, आप केवल लाइन-बाय-लाइन स्रोत नहीं देख सकते हैं (सभी डीबग जानकारी अभी भी काम करती है)।

आप कॉमन्स एचटीपी क्लाइंट (बहुत मुश्किल नहीं) के कस्टम संस्करण को संकलित करके इस समस्या को "ठीक" कर सकते हैं, या बस पूरे "लाइब्रेरी में कदम" विचार छोड़ सकते हैं। एक सामान्य विकास अभ्यास के रूप में, तीसरे पक्ष के पुस्तकालयों में कदम उठाने से शायद ही कभी उपयोगी जानकारी मिलती है। मैंने पिछले दस वर्षों में इसे एक या दो बार किया है, न तो यह वास्तव में मुझे दुविधा को हल करने के करीब किसी भी समय लाता है।

4

मैंने पाया है कि कभी कभी, आप निर्देशिका आप मान था सही था को इंगित, और फिर इसे अभी भी कहता है कि यह संलग्न स्रोत ब्ला ब्लाह में फ़ाइल नहीं ढूंढ सकता है।

इन बार, मुझे एहसास हुआ है कि पिछले पथ तत्व था "src"। बस इस पथ तत्व को हटा रहा है (इस प्रकार वास्तव में वास्तविक पथ से ऊपर एक स्तर को इंगित करता है जहां "org" या "com" फ़ोल्डर स्थित है) जादुई रूप से यह काम करता है।

किसी भी तरह, ग्रहण वर्तमान में यह "src" पथ तत्व इंगित करता प्रतीत होता है, और यदि आपने इसे स्रोत पथ, ग्रहण चोक में शामिल किया है। या कुछ इस तरह का।

1

मुझे लगता है, स्रोत संग्रह के पथ में अंतरिक्ष (या स्थानीयकृत) सिमबोल में समस्या। इसे सरल पथ के साथ किसी अन्य स्थान पर ले जाने का प्रयास करें।