कैसे एक दूरस्थ मंचन या उत्पादन स्प्रिंग बूट आवेदन डिबग करने के लिए
सर्वर साइड
मान लें कि आपने अपने स्प्रिंग बूट एप्लिकेशन को एक सेवा के रूप में स्थापित करने पर स्प्रिंग बूट के गाइड का सफलतापूर्वक पालन किया है । /srv/my-app/my-app.war
कॉन्फ़िगरेशन फ़ाइल के साथ आपका अनुप्रयोग विरूपण साक्ष्य रहता है /srv/my-app/my-app.conf
:
# This is file my-app.conf
# What can you do in this .conf file? The my-app.war is prepended with a SysV init.d script
# (yes, take a look into the war file with a text editor). As my-app.war is symlinked in the init.d directory, that init.d script
# gets executed. One of its step is actually `source`ing this .conf file. Therefore we can do anything in this .conf file that
# we can also do in a regular shell script.
JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=localhost:8002,server=y,suspend=n"
export SPRING_PROFILES_ACTIVE=staging
जब आप अपने स्प्रिंग बूट एप्लिकेशन को sudo service my-app restart
फिर से शुरू करते हैं , तो उसके लॉग फ़ाइल में स्थित /var/log/my-app.log
एक लाइन कहनी चाहिए Listening for transport dt_socket at address: 8002
।
क्लाइंट-साइड (डेवलपर मशीन)
सर्वर के लिए SSH पोर्ट-फ़ॉरवर्डिंग टनल खोलें ssh -L 8002:localhost:8002 myusername@staging.example.com
:। इस SSH सत्र को चालू रखें।
उपकरण पट्टी से ग्रहण में, चलाएँ -> डिबग कॉन्फ़िगरेशन का चयन करें -> दूरस्थ जावा अनुप्रयोग का चयन करें -> नया बटन क्लिक करें -> कनेक्शन प्रकार मानक (सॉकेट अटैच) , होस्ट लोकलहोस्ट के रूप में, और पोर्ट 8002 (या आपके पास जो भी हो) का चयन करें। पहले के चरणों में कॉन्फ़िगर किया गया है)। अप्लाई पर क्लिक करें और फिर डीबग करें ।
ग्रहण डिबगर को अब दूरस्थ सर्वर से कनेक्ट होना चाहिए। डिबग परिप्रेक्ष्य में स्विच करने से जुड़े जेवीएम और उसके धागे को दिखाना चाहिए। जैसे ही वे दूरस्थ रूप से चालू होते हैं, ब्रेकपॉइंट को आग लगनी चाहिए।