2012-09-14 8 views
12

करने के लिए संबंधित eclipse debug remote web application =>How do I debug a remote application in my eclipseकैसे mvn बिल्ला प्लगइन (jpda) के लिए agentlib गुण सेट करने के लिए

कैसे मैं/इस mvn बिल्ला प्लगइन में संग्रह सेट कर सकते हैं? http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/

केवल मदद कर सकता है कि systemProperty स्थापित कर रही है, लेकिन यह मेरे लिए काम नहीं करता है बात;/

लक्ष्य: चलो बिल्ला Maven के माध्यम से कंसोल पर चलते हैं, लेकिन (विभिन्न IDEs

के लिए दूरदराज के डिबगिंग सक्षम हाँ दोस्तों, हम ग्रहण डब्ल्यूटीपी में बिल्ला चला सकते हैं कि सवाल नहीं है,!)

उत्तर

5

यह थोड़ा पुराना धागा है लेकिन पूर्णता के लिए मैं हालांकि यहां थोड़ा सा जोड़ सकता हूं।

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

  1. maven करने के लिए एक अच्छी तरह से ज्ञात-Maven वातावरण चर (के रूप में childno.de द्वारा वर्णित)
  2. सीधे विकल्प का उल्लेख करने का उपयोग करना (कोई: अपने वातावरण में, वहाँ तीन तरीके इस लक्ष्य को हासिल कर रहे हैं । env चर आवश्यक):

    mvn -Xdebug -Xnoagent -Djava.compiler = कोई नहीं -Xrunjdwp: परिवहन = dt_socket, पता = 8000, सर्वर = y, निलंबित = y tomcat7: रन-युद्ध

  3. एक ग्रहण के साथ रन कॉन्फ़िगरेशन यह मूल रूप से 2 जैसा ही है) लेकिन आप इसे ग्रहण में परिभाषित करते हैं (यदि आप आईडीई को छोड़ना नहीं चाहते तो अच्छा होगा)। यह प्राप्त करने के लिए कि आपको मेवेन बिल्ड रन कॉन्फ़िगरेशन निर्दिष्ट करने की आवश्यकता है। लक्ष्य को tomcat7:run (या इसी तरह) पर सेट करें और फिर JRE टैब पर नेविगेट करें। -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
आप 3 के लिए चुनते हैं), tomcat7 के लिए सटीक रन लक्ष्य डिबग सक्षम करने के लिए अप्रासंगिक है: वीएम तर्क क्षेत्र है जहां आप डिबग विन्यास निर्दिष्ट है। आपके द्वारा उपयोग किए जाने वाले केस (गतिशील वेब प्रोजेक्ट, युद्ध इत्यादि) के अनुसार चुनें। प्लगइन विन्यास के लिए वही चला जाता है। हालांकि, यह है कि आप अपनी परियोजना पोम की pluginManagement खंड में प्लगइन बिल्ला Maven का उपयोग कर रहे निर्दिष्ट करने के लिए सुनिश्चित करें:

<pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.tomcat.maven</groupId> 
     <artifactId>tomcat7-maven-plugin</artifactId> 
     <version>2.1</version> 
    </plugin> 
    </plugins> 
</pluginManagement> 
+0

क्या मुझे पहले जेवीएम पैराम्स के साथ वर्णित मैवेन रन को कॉन्फ़िगर करना है, इसे चलाने दें और फिर रिमोट डीबग के लिए दूसरी डीबग कॉन्फ़िगरेशन करें? मुझे लगता है कि क्या मैंने HTTP पोर्ट को बदल दिया है जो तब JVM तर्कों के लिए teh जैसा होगा? – JBA

+1

हां। आपको तदनुसार अपने रिमोट डीबग क्लाइंट को सेटअप करने की आवश्यकता है। आपके प्रश्न से मैं आपके लिए ग्रहण करता हूं, लेकिन सिद्धांत रूप में कोई अन्य जेपीडीए-सक्षम ग्राहक भी योग्यता प्राप्त करता है। ग्रहण रिमोट डीबग कॉन्फ़िगरेशन के लिए ये डिफ़ॉल्ट सेटिंग हैं, इसलिए इसे बॉक्स से बाहर काम करना चाहिए। यदि पोर्ट 8000 उपलब्ध नहीं है तो सुनिश्चित करें कि आप सर्वर में दोनों को JVM डीबग सेटिंग्स (-Xrunjwdp विकल्प का पता खंड) और अपने क्लाइंट (ग्रहण डीबग कॉन्फ़िगरेशन) में बदलते हैं। भ्रम से बचने के लिए, यह पोर्ट रिमोट डीबग प्रोटोकॉल के लिए है और टॉमकैट के साथ HTTP/S संचार से संबंधित नहीं है। – shturec

-1

या ... आप बस अपने प्लगइन विन्यास के लिए निम्न टैग जोड़ सकते हैं

<jpda>true</jpda> 

फिर जब आप निष्पादित करते हैं: mvn tomcat7: run, यह पोर्ट 8000 पर jpda शुरू करेगा।

मजेदार बात यह है कि मैंने इसका परीक्षण किया है और यह काम करता है, मुझे यह पता लगाने के लिए ओपनसोर्स कोड बेस में कोई कोड नहीं मिल रहा है कि यह क्यों काम करता है, और न ही मुझे डिफ़ॉल्ट पोर्ट 8000 से बदलने का कोई तरीका मिला है।

अपाचे ने इस प्लगइन के दस्तावेज़ीकरण की बात करते समय गेंद को गिरा दिया है।

+0

यह मेरे लिए काम नहीं करता है। मैं प्लगइन के संस्करण 2.2 पर हूँ। मैंने अपाचे से स्रोत भी डाउनलोड किया और "jpda" के लिए केस-असंवेदनशील रिकर्सिव grep चलाया और कुछ भी वापस नहीं किया गया था। – bmauter

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