Uzaktan hazırlama veya üretim Spring Boot uygulamasında nasıl hata ayıklanır
Sunucu tarafı
Spring Boot uygulamanızı bir hizmet olarak kurma konusunda Spring Boot'un kılavuzunu başarıyla takip ettiğinizi varsayalım . Uygulama yapınız /srv/my-app/my-app.war
, bir yapılandırma dosyasıyla birlikte içinde bulunur /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
Spring Boot uygulamanızı ile yeniden sudo service my-app restart
başlattığınızda, günlük dosyasında yer alan /var/log/my-app.log
bir satır olmalıdır Listening for transport dt_socket at address: 8002
.
İstemci tarafı (geliştirici makinesi)
Sunucusuna SSH port yönlendirme tüneli açma: ssh -L 8002:localhost:8002 myusername@staging.example.com
. Bu SSH oturumunu çalışır durumda tutun.
Eclipse'de, araç çubuğundan Çalıştır -> Hata Ayıklama Yapılandırmaları'nı seçin -> Uzak Java Uygulaması'nı seçin -> Yeni düğmesini tıklayın -> Bağlantı Türü Standardı (Soket Ekleme) , Ana Bilgisayar localhost ve Port 8002 (veya sahip olduğunuz önceki adımlarda yapılandırılmıştır). Uygula'yı ve ardından Hata Ayıkla'yı tıklayın. .
Eclipse hata ayıklayıcısının artık uzak sunucuya bağlanması gerekir. Hata Ayıklama perspektifine geçiş , bağlı JVM'yi ve iş parçacıklarını göstermelidir. Kesme noktaları, uzaktan tetiklendikleri anda tetiklenmelidir.