Yazar | Zheng Yi
Sorumlu Editör | Elle
Önsöz
IntelliJ IDEA Community Edition (Community Edition) Tomcat'i desteklemiyor. Ultimate sürümü satın almak için para harcamak istemiyorum ve Eclipse'i kullanmak istemiyorum. IDEA Community Edition'ı Tomcat'i başka şekillerde desteklemeye çalışın.
Deneme yöntemi
2.1. Smart Tomcat eklentisi
Smart Tomcat eklentisini IDEA Community Edition'da (2019.2.4) kurdum ve Tomcat uygulamasını başlatmak için kullandım.Aşağıdaki sorunlarla karşılaştım:
Web uygulamasının sınıf dosyası, web uygulamasının ilgili kök dizinine otomatik olarak kopyalanmaz, bu da web uygulamasının kodunun yüklenmemesine, manuel işlem ve uygunsuz kullanım gerektirmesine neden olur;
Tomcat günlüğü, yalnızca localhost_access_log.txt günlük dosyasını oluşturur, catalina.log, localhost.log ve diğer günlük dosyalarını değil, bu da sorun giderme için uygun değildir.
Smart Tomcat eklentisiyle ilgili sorunlarla karşılaştıktan sonra eklentiyi kullanmayı bıraktım ve yanlış kullanımdan kaynaklanıp kaynaklanmadığını analiz etmedim.
Uygulanabilir yöntem
3.1. Açıklama
Daha sonra Gradle betikleri aracılığıyla IDEA Community Edition, Tomcat'i destekler (ayrıca IDEA Ultimate Edition'ı destekler).
Tamamlanan Gradle betiği ve örnek Web projesi kodu https://github.com/Adrninistrator/IDEA-IC-Tomcat/, https://gitee.com/adrninistrator/IDEA-IC-Tomcat/ adresinden indirilebilir, komut dosyası içeriği çok kısadır Etkili hat sayısı 200 satırı geçmez ve işlem çok basittir.
Yukarıdaki Gradle betiği aracılığıyla, konfigürasyon tamamlandıktan sonra IDEA'nın işlevleriyle birleştirilen, Eclipse veya Tomcat için IDEA Ultimate tarafından desteklenen işlevlere yakın bir etki elde edebilen aşağıdaki işlevler gerçekleştirilebilir.
Tomcat'i başlatmak ve web uygulamasını yüklemek için tek tıklama
Tek tıklamayla Tomcat'i durdurun (uygulama örneği, web konteyneri imha bildirimini alabilir)
Hata ayıklanabilir Tomcat'i (Web uygulaması) başlatmak için tek tıklama
Tomcat'ten (Web uygulaması) tek tıklamayla hata ayıklamaya başlayın
3.2. Bağımlı ortam
FİKİR
IntelliJ IDEA Community Edition 2019.2.4 sürümünü kullanın.
Tomcat
Tomcat 7, 8, 9 sürümünü destekleyin (Tomcat 7.0.55, 7.0.79, 8.5.20, 9.0.30 sürümleri test edildi), teorik olarak Tomcat 5, 6 sürümünü de (test edilmedi) destekler.
Gradle
Gradle 4, 5, 6 sürümlerini destekleyin (Test Edilmiş Gradle 4.1, 4.7, 5.6.4, 6.0.1 sürümü).
JDK
JDK 1.8.0_144 sürümünü kullanın.
işletim sistemi
Windows 7 x64 SP1 sürümünü kullanın.
3.3. Gradle komut dosyasını IDEA'da çalıştırın
Aşağıdaki Gradle görevlerinin mevcut olduğunu varsayalım:
task testTask { doFirst { println "Test-" + System.getProperty ("arg") } }3.3.1. Terminalde Yürütme
Yukarıdaki Gradle görevlerini IDEA'nın Terminalinde yürütürken, gradle veya gradlew komutlarını komut satırında yürütmek için kullanabilir ve Java programlarının yürütülmesine benzer şekilde "-D" ön eki aracılığıyla Gradle komut dosyasına aktarılan JVM parametrelerini belirtebilirsiniz.
Yukarıdaki görevleri gerçekleştirmek için Gradle komutlarına bir örnek aşağıdaki gibidir:
gradle testTask -Darg = abc gradlew testTask -Darg = abcİnfazın sonuçları aşağıdaki gibidir:
> Görev: testTask Test-abc3.3.2. Çalıştırma / Hata Ayıklama Konfigürasyonlarında Yürütme
IDEA'nın "Yapılandırmaları Çalıştır / Hata Ayıkla" penceresini açın, artı işaretini tıklayın ve ilgili Gradle görevini yürütmek üzere bir yapılandırma eklemek için açılır menüden "Gradle" öğesini seçin.
"Yapılandırma" sekmesini açın ve parametreleri değiştirin.
"Gradle projesi" nin sağ tarafındaki simgeye tıklayın ve mevcut projeyi seçin;
"Görevler" in sağ tarafında, "testTask" gibi yürütülecek Gradle görevinin adını girin;
"-Darg = test_arg" gibi "VM seçeneklerinin" sağ tarafındaki Gradle komut dosyasına aktarılması gereken JVM parametrelerini doldurun, düzenleme kutusunu genişletmek için ok simgesini tıklayın.
Yapılandırmayı Çalıştır / Hata Ayıklama Yapılandırmalarında tamamladıktan sonra, ilgili yapılandırmayı seçebilir ve yürütmeyi başlatmak için yürüt düğmesini tıklayabilirsiniz.
Yürütme sonucu aşağıda gösterildiği gibi "Çalıştır" penceresinde görüntülenir:
Çalıştırma / Hata Ayıklama Yapılandırmaları tarafından kullanılan Gradle'ı değiştirmeniz gerektiğinde, IDEA'nın "Dosya | Ayarlar | Oluşturma, Yürütme, Dağıtım | Oluşturma Araçları | Gradle" menüsünü açabilir ve "Gradle'ı Kullan" seçeneğini değiştirebilirsiniz.
3.3.2.1. Çalıştırma / Hata Ayıklama Yapılandırmalarında çalıştırılan Gradle komut dosyasındaki bozuk Çince karakter sorununu çözün
Gradle komut dosyası çalıştırılırken veya Çalıştırma / Hata Ayıklama Konfigürasyonlarında derleme işlemi yapılırken, Çince çıktı bozuk olabilir.
Veya aşağıda gösterildiği gibi:
Aşağıdaki ayarlar, yukarıda bahsedilen bozuk Çince sorununu çözebilir.
IDEA'nın "Yardım" "Özel Sanal Makine Seçeneklerini Düzenle ..." menüsünü açın;
Açılan dosyanın sonuna "-Dfile.encoding = UTF-8" ekleyin;
Açılan IDEA yeniden başlatıldıktan sonra yürürlüğe girer.
3.4. IDEA'da uzaktan hata ayıklama
3.4.1. Uzaktan hata ayıklama yapılandırması oluşturun ve IDEA'da hata ayıklama parametrelerini alın
Uzaktan hata ayıklama için bir yapılandırma eklemek için IDEA'nın "Yapılandırmaları Çalıştır / Hata Ayıkla" penceresini açın, artı işaretini tıklayın ve açılır menüden "Uzak" ı seçin.
"Yapılandırma" sekmesini açın ve parametreleri değiştirin.
"Hata ayıklayıcı modu" seçeneği "Uzak JVM'ye ekle" olarak kalır
"Taşıma" seçeneği "Soket" olarak kalır
"Ana bilgisayar" parametresi "localhost" olarak kalır
"Bağlantı Noktası" parametresi, hata ayıklanan Java işleminin izlediği hata ayıklama bağlantı noktasını belirtir
"Modül sınıf yolunu kullan", hata ayıklanmış Java işlemine karşılık gelen kaynak kodu modülünü seçer
"Uzak JVM için komut satırı bağımsız değişkenlerinde" gösterilen hata ayıklama parametreleri düzenlenemez ve yukarıdaki parametreleri izleyecektir.
"Taşıma" seçeneği "Soket" hata ayıklama parametresi "taşıma = dt_socket" e karşılık gelir
"Port" parametresi, hata giderme parametresi "address =" e karşılık gelir
3.4.2. Hata ayıklama parametrelerini ekledikten sonra, hata ayıklanmış Java sürecini başlatın
"Uzak JVM için komut satırı bağımsız değişkenlerine" karşılık gelen hata ayıklama parametrelerini kopyalayın ve Java işlemini başlatmak için bunları, hata ayıklanmış Java işleminin JVM parametrelerine ekleyin.
IDEA hata ayıklama yapılandırmasındaki Bağlantı Noktası parametresinin, hata ayıklanmış Java işlemi tarafından kullanılan hata ayıklama parametrelerindeki adres parametresiyle aynı olması gerektiği, yani hata ayıklayıcının bağlandığı bağlantı noktasının, hata ayıklanmış Java işlemi tarafından izlenen bağlantı noktasıyla aynı olması gerektiği unutulmamalıdır.
3.4.3. IDEA'da hata ayıklamaya başlayın
İlgili uzaktan hata ayıklama yapılandırmasını seçin, Java işlemini başlatmak ve hata ayıklamak için IDEA kullanmaya benzer şekilde, hata ayıklamayı başlatmak için hata ayıklama düğmesine tıklayın.
Hata ayıklama başarılı bir şekilde başlatıldıktan sonra, aşağıda gösterildiği gibi "Hata Ayıkla" "Konsol" penceresinde "Hedef VM'ye Bağlandı" uyarısı verecektir.
Hata ayıklamayı durdurmak için durdur düğmesine tıklayın ve IDEA "Hata Ayıklama" penceresinde "Hedef sanal makineden bağlantı kesildi, adres: 'localhost: 5555', taşıma: 'soket'" benzeri bir komut istemi görünecektir.
Hata ayıklanmış Java sürecini durdururken, IDEA tarafından başlatılan hata ayıklama otomatik olarak sona erecektir.
Hata ayıklamayı durdurduktan sonra, hata ayıklanmış Java işlemi çıkmayacaktır.
Tomcat'te hata ayıklama yapılırken, hata ayıklamayı durdurduktan sonra Tomcat penceresinde "dt_socket şu adreste dinleniyor: 5555" gibi bir komut istemi görünecektir.
Yukarıdaki hata ayıklama yöntemleri, web dışı uygulamaları ve uzak Java işlemlerini de destekler.
3.5. RunTomcat.gradle betiği nasıl kullanılır
RunTomcat.gradle komut dosyasını Java Web uygulaması projesine kopyalayın ve build.gradle komut dosyasına "apply from: 'runTomcat.gradle'" ifadesini ekleyin.
3.5.1. Görev ve parametre açıklaması
Tomcat'i başlatmak ve web uygulamasını yüklemek için runTomcat.gradle komut dosyasında "startTomcat" adlı bir görev sağlanır.
Komut dosyasında aşağıdaki parametreler kullanılır.
3.5.1.1. Ortam değişkenleri
TOMCAT_HOME_4IDEA
TOMCAT_INSTANCE_4IDEA
3.5.1.2. JVM parametreleri
uygulama ismi
noBuild
contextPath
arg4Tomcat
3.5.2. Ortam yapılandırması
Sağlanan Gradle komut dosyası runTomcat.gradle'ı kullanırken, önce ortam yapılandırmasını tamamlamanız gerekir, "TOMCAT_HOME_4IDEA" ortam değişkeni yapılandırmasının eklenmesi gerekir ve "TOMCAT_INSTANCE_4IDEA" ortam değişkeni yapılandırması isteğe bağlıdır.
Ortam değişkeni yapılandırmasını tamamladıktan sonra, etkin olması için açılan IDEA'yı yeniden başlatmanız gerekir.
Ortam değişkeni yapılandırmasının geçerli olup olmadığını doğrulamak için, IDEA'nın Terminalinde "echo% TOMCAT_HOME_4IDEA%" komutunu çalıştırabilirsiniz. Yapılandırma tamamlandığında, ilgili ortam değişkeni değeri çıktılanacaktır. Yapılandırılmadığında veya etkin olmadığında, "% TOMCAT_HOME_4IDEA%" çıktı verecektir.
3.5.3. Kullanım senaryoları
3.5.3.1. Tomcat işlemini normal şekilde başlatın
Tomcat işlemini normal şekilde başlatın ve Web uygulamasının Gradle komutunu örnek projeye aşağıdaki gibi yükleyin:
gradlew startTomcat -DappName = test-tomcat -Darg4Tomcat = "- DtestValue = aaabbbccc -Dlog.home = E: \ desktop \ log-test"Yukarıdaki örnekte, geçerli uygulamaya karşılık gelen Tomcat örneğinin adını ve web uygulamasının bağlam yolunu belirtin, her ikisi de "test-tomcat" ve Tomcat'i başlatırken kullanılan JVM parametresini "" -DtestValue = aaabbbccc -Dlog.home = olarak belirtin E: \ desktop \ log-test "".
Yukarıdaki Gradle komutu ilk kez çalıştırıldığında (veya mevcut uygulamaya karşılık gelen Tomcat örneğinin dizini silindikten sonra), Gradle komut dosyasının çıktı sonucu aşağıdaki gibidir:
> Projeyi yapılandırın: noBuild parametre değeri: > Görev: temiz > Görev: compileJava > Görev: processResources > Görev: sınıflar > Görev: startTomcat appName parametre değeri: test-tomcat contextPath parametre değeri: test-tomcat arg4Tomcat parametre değeri: -DtestValue = aaabbbccc -Dlog.home = E: \ desktop \ log-test tomcatDir parametre değeri: C: \ program \ apache-tomcat-7.0.55 instanceDir parametre değeri: C: \ Users \ user \ .tomcat_idea Geçerli yol: E: \ IDEA-IC-Tomcat Geçerli uygulama tarafından kullanılan Tomcat örnek dizini: C: \ Users \ user \ .tomcat_idea \ test-tomcat Web uygulamaları için gerekli dosyaları oluşturun Web uygulaması için gerekli dosyaları oluşturun-tamamlandı Tomcat örneği oluşturup oluşturmayacağınızı belirleyin Tomcat örneği oluşturun Dosya mevcut değil: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ conf \ Catalina \ localhost \ test-tomcat.xml Dosyaya yaz: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ conf \ Catalina \ localhost \ test-tomcat.xml Bat stop komut dosyası oluşturun: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-stop.bat Dosya mevcut değil: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-stop.bat Dosyaya yazın: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-stop.bat Yarasa başlangıç komut dosyası oluşturun: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-start.bat Dosya mevcut değil: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-start.bat Dosya yaz: C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat-start.batYukarıdaki Gradle komut dosyası başarıyla yürütüldüğünde, Tomcat başlatılacak ve Tomcat işlemi ayrı bir komut satırı penceresi oluşturacaktır.
Örnek projenin Denetleyicisine erişmek için bir tarayıcı kullanın, URL "http: // localhost: 8080 / test-tomcat / testrest / get", çıktı sonucu geçerli zaman damgası ve "testValue" değerine karşılık gelen JVM parametre değeridir, erişim sonucu aşağıdaki gibidir :
3.5.3.2. Tomcat örnek başlangıç komut dosyasını kullanarak Tomcat işlemini başlatın
RunTomcat.gradle komut dosyasının "startTomcat" görevi yürütüldüğünde, önceki "C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat" bölümündeki örnek çıktıda olduğu gibi, Tomcat örnek dizininde geçerli web uygulamasına karşılık gelen bir başlangıç komut dosyası oluşturulur -start.bat ".
Web uygulamasını yeniden derlemenize gerek olmadığında, Tomcat işlemini başlatmak ve web uygulamasını yüklemek için yukarıdaki başlangıç komut dosyasını doğrudan yürütebilirsiniz.
3.5.3.3. Tomcat işlemini durdurun
Örnek projede, TestPostConstructLazyFalse.preDestroy yöntemi @PreDestroy ek açıklamasını kullanır.Bu yöntem uygulama durdurma aşamasında yürütülecek ve "preDestroy-" adlı bir dizin ve geçerli dizinde geçerli zaman damgası oluşturulacaktır.
3.5.3.3.1. Tomcat penceresini doğrudan kapatın (uygulama eşgörünümü Web kapsayıcısının yok edildiğine dair bildirimi alamaz)
Tomcat işlemini durdurmak için Tomcat penceresini kapatın.
Tomcat işleminin bu yöntemle durdurulması, Tomcat işlemini doğrudan sonlandırır, uygulama örneği Web kapsayıcısı imha bildirimini alamaz, örnek projenin TestPostConstructLazyFalse.preDestroy yöntemi yürütülmez ve geçerli dizin bir dizin oluşturmaz.
3.5.3.3.2. Tomcat sürecini durdurmak için Tomcat örneği durdurma komut dosyasını kullanın (uygulama eşgörünümü, Web kapsayıcısı imha bildirimini alabilir)
RunTomcat.gradle komut dosyasının "startTomcat" görevi yürütüldüğünde, önceki "C: \ Users \ user \ .tomcat_idea \ test-tomcat \ test-tomcat" çıktı örneğinde gösterildiği gibi, Tomcat örnek dizininde geçerli web uygulamasına karşılık gelen bir durdurma komut dosyası oluşturulur -stop.bat ".
Yukarıdaki durdurma komut dosyasının yürütülmesi, Tomcat tarafından Tomcat işlemini durdurmak için sağlanan durdurma komutunu çalıştırır, uygulama örneği web konteyneri imha bildirimini alabilir, örnek projenin TestPostConstructLazyFalse.preDestroy yöntemi çalıştırılır ve mevcut dizin aşağıda gösterildiği gibi bir dizin oluşturur.
3.5.3.4. Web Uygulamasında Hata Ayıklama
Uzaktan hata ayıklama yapılandırması oluşturma ve IDEA'da hata ayıklama parametreleri alma işlemi için lütfen önceki makaledeki ilgili içeriğe bakın.
3.5.3.4.1. İşlem başladıktan sonra hata ayıklama
Tomcat sürecini başlatın
Elde edilen hata ayıklama parametreleri aşağıdaki gibidir:
-agentlib: jdwp = taşıma = dt_socket, sunucu = y, askıya alma = n, adres = 5555Gradle "startTomcat" görevini yürütürken, yukarıdaki parametreleri arg4Tomcat parametresine ekleyin (IDEA'nın "Çalıştır / Hata Ayıklama Yapılandırmalarının" Gradle yapılandırmasına aşağıda gösterildiği gibi eklenebilir):
gradlew -DappName = test-tomcat -Darg4Tomcat = "- DtestValue = aaabbbccc -Dlog.home = E: \ desktop \ log-test -agentlib: jdwp = transport = dt_socket, server = y, suspend = n, adres = 5555"Yukarıdaki Gradle komutunu çalıştırdıktan sonra Tomcat işlemini başlatın.
IDEA hata ayıklamasını başlatın
Daha sonra IDEA'da hata ayıklamaya başlayabilirsiniz.
URI "/ testrest / get" 'e karşılık gelen TestRestController.get yönteminde bir kesme noktası belirleyin. Tarayıcı üzerinden eriştikten sonra, IDEA hata ayıklayıcı, "Hata Ayıkla" ve "Hata Ayıklayıcı" penceresinde görüntülenebilen kesme noktasına girer.
3.5.3.4.2. İşlemin başlangıcından itibaren hata ayıklama (iki kez çalıştırın)
Yukarıda kullanılan hata ayıklama parametrelerindeki askıya alma parametresi değeri "n" dir ve hata ayıklanan işlem, başladığında iş parçacığını askıya almaz, ancak normal şekilde başlayacaktır. Yalnızca önce hata ayıklama işlemini başlatmayı ve ardından hata ayıklamayı destekleyin.
İşlem başlangıcından hata ayıklamaya başlamanız gerektiğinde, hata ayıklama parametrelerindeki askıya alma parametresi değerini "y" olarak ayarlamanız gerekir. Hata ayıklama işlemi başladığında iş parçacığını askıya alacak ve başlatmaya devam etmeden önce hata ayıklayıcının adres tarafından belirtilen bağlantı noktasına bağlanmasını bekleyecektir.
Tomcat sürecini başlatın
İşlemin başından itibaren hata ayıklamaya başlamak gerektiğinde, hata ayıklama parametreleri örnekleri aşağıdaki gibidir.
-agentlib: jdwp = taşıma = dt_socket, sunucu = y, askıya alma = y, adres = 5555Gradle görevi olan "startTomcat" in "arg4Tomcat" parametresinde yapılandırılan "suspend" parametresini "y" olarak ayarlayın ve ardından Tomcat'i bu komutla başlatın, Tomcat penceresi yalnızca "5555 adresinde taşıma dt_socket için dinleme" öğesini görüntüler, başka içerik görüntülenmez Yani Tomcat işlemi, hata ayıklayıcının şu anda adres parametresine karşılık gelen bağlantı noktasına bağlanmasını bekliyor ve başlatma tamamlanmadı.
IDEA hata ayıklamasını başlatın
Web uygulamasının başlatma aşamasında yürütülecek kodda kesme noktaları ayarlayın.Örneğin, örnek projede @PostConstruct ile açıklanmış TestPostConstructLazyFalse.postConstruct yönteminde kesme noktaları ayarlayın.
IDEA'da hata ayıklamaya başlayın, Tomcat işleminin başladığını gösteren Tomcat pencere günlüğünün güncellendiğini kontrol edin.
IDEA hata ayıklama penceresini kontrol edin, yukarıda ayarlanan kesme noktasını girdiniz, bu da web uygulaması başlangıcından hata ayıklamaya başlayabileceğinizi kanıtlıyor.
3.5.3.4.3. İşlem başlangıcından itibaren hata ayıklamayı başlatın (tek tıklamayla tamamlama)
İşlem başlangıcından hata ayıklamayı başlatmak için yukarıdaki işlemler, önce Tomcat sürecini başlatmalı ve ardından tek tıklamayla tamamlama için optimize edilebilen IDEA hata ayıklamayı başlatmalıdır.
IDEA'nın "Yapılandırmaları Çalıştır / Hata Ayıkla" penceresini açın, "Uzak" yapılandırmasını seçin, "Başlatmadan önce: Araç penceresini etkinleştir" altındaki artı düğmesine tıklayın ve "Gradle görevini çalıştır" ı seçin.
"Gradle Görevini Seç" penceresi açılır, "Gradle projesi", "Görevler" ve "VM seçenekleri" parametre yapılandırması. IDEA'da Gradle yapılandırması ekleme adımlarına başvurabilir ve Tomcat işlemini "startTomcat" görevi üzerinden başlatabilirsiniz. "VM seçenekleri" parametresinin doldurulduğundan emin olun "Arg4Tomcat" parametresindeki hata ayıklama parametresi "suspend" "y" dir.
Yapılandırılan Gradle görevleri, "Başlamadan önce: Araç penceresini etkinleştir" altındaki listede görünecektir.
Yukarıdaki yapılandırmayı tamamladıktan sonra, IDEA hata ayıklamasına başlamadan önce, belirtilen Gradle görevi "startTomcat" yürütülecek ve Tomcat işlemi "suspend = y" hata ayıklama parametresiyle başlatılacaktır. Tek tıklamayla hata ayıklama, IDEA Ultimate veya Eclipse'in başlangıçtan web uygulaması hata ayıklaması üzerindeki etkisine benzer şekilde işlem başlangıcından başlatılabilir.
3.5.3.4.4. Tomcat sınıflarında hata ayıklama
Tomcat sınıfında hata ayıklamanız gerektiğinde, Tomcat kitaplık dizinini IDEA'nın web uygulaması projesinin bağımlılıklarına eklemeniz gerekir, aksi takdirde hata ayıklama sırasında Tomcat sınıfını görüntüleyemezsiniz.
IDEA'nın "Proje Yapısı" penceresini açın, "Proje Ayarları" "Modüller" sekmesini seçin, açılan pencerede ana web proje modülünü seçin, "Bağımlılıklar" sekmesini seçin, artı düğmesine tıklayın ve "JAR'lar veya dizinler" i seçin .. ."Menü.
Açılır pencerede, şu anda kullanımda olan Tomcat kurulum dizininin kitaplık dizinini seçin.
Ekledikten sonra, Tomcat kitaplık dizini "Bağımlılıklar" sekmesinin altında görünecektir.
Gradle'ı yeniledikten sonra, proje yapılandırması sıfırlanacak, yukarıda eklenen bağımlılıklar temizlenecek ve yeniden eklenmesi gerekecek.
Yukarıdaki yapılandırmayı tamamladıktan sonra, Tomcat'in org.apache.catalina.startup.HostConfig $ DeployDescriptor sınıfının çalıştırma yönteminde bir kesme noktası ayarlayın ve işlem başlangıcından hata ayıklamaya başlayın IDEA'nın Hata Ayıklama penceresinde kesme noktasının girildiğini görebilirsiniz. Bu yöntem, Tomcat başladığında çalıştırılan ilk Tomcat sınıfının yöntemidir.
3.6. Diğer talimatlar
Web uygulamaları oluşturmak için gerekli dosya ayarlamaları
RunTomcat.gradle komut dosyasındaki buildFiles4WebApp yöntemi, web uygulamasının gerektirdiği dosyaları oluşturmak için kullanılır ve kopyalanan dizinler ve dosyalar gerçek duruma göre ayarlanabilir.
Hata ayıklama bağlantı noktasının izlenmediğinden emin olması gerekir
Hata ayıklanan Java işleminin hata ayıklama parametresinde belirtilen aderss parametresine karşılık gelen hata ayıklama bağlantı noktasının izlenmemesi gerekir, aksi takdirde hata ayıklanmış Java işlemi başlatılamaz ve pencere otomatik olarak kaybolur.Tomcat istemi aşağıdaki gibidir.
Tomcat örneğini yeniden oluşturun
Web uygulaması tarafından kullanılan Tomcat örneğinin, kullanılan Tomcat sürümünü değiştirme ihtiyacı veya başka nedenlerle yeniden oluşturulması gerektiğinde, "C: \ Users \ user.tomcat_idea \ test-tomcat" gibi karşılık gelen Tomcat örnek dizininin silinmesi gerekir , Ve sonra Gradle'ın startTomcat görevini yürütün.
Tomcat örnek dizini yapılandırma değişikliği ve günlük görüntüleme
Geçerli web uygulamasına karşılık gelen Tomcat örnek dizini, "C: \ Users \ user.tomcat_idea \ test-tomcat" gibi Gradle "startTomcat" görevi yürütüldüğünde çıktılanacaktır.
HTTP hizmet portunu, SSL yapılandırmasını, iş parçacığı havuzu numarasını ve Tomcat tarafından kullanılan geçerli Web uygulamasına karşılık gelen diğer parametreleri değiştirmeniz gerektiğinde, Tomcat örnek dizinindeki "conf \ server.xml" dosyasını değiştirebilirsiniz. Açıklama atlanır.
Farklı web uygulamalarını yüklemek için aynı anda birden fazla Tomcat işlemi başlatmanız gerektiğinde, aynı bağlantı noktasını kullanan farklı Tomcat örneklerinin kullanılamamasını önlemek için ilgili Tomcat örneğinin "conf \ server.xml" dosyasındaki dinleme bağlantı noktasını değiştirmeniz gerekir.
Tomcat örnek dizininin "günlükler" dizini Tomcat günlük dosyalarını kaydeder. Varsayılan yapılandırma kullanıldığında, "catalina.log", "localhost.log", "localhost_access_log.txt", "host-manager.log", "manager.log" vb. İçerir.
3.7. İlke açıklaması
Tomcat işlemini başlatın ve web uygulamasını aşağıda gösterildiği gibi Eclipse veya IDEA Ultimate (2018.3 ve önceki sürümler) ilkesine benzer şekilde runTomcat.gradle komut dosyası aracılığıyla yükleyin.
3.7.1. Web uygulamaları için gerekli dosyaları oluşturun
NoBuild parametresi belirtilmediğinde veya boş olduğunda, Derlemeyi tamamlamak için Gradle sınıfları görevi yürütülür ve ardından aşağıdaki işlemleri tamamlamak için buildFiles4WebApp yöntemi yürütülür:
Derlenmiş sınıf dosyasını "build / tomcat / WEB-INF / classes" dizinine kopyalayın
"Src / main / resources /" dizinini (yapılandırma dosyası) "build / tomcat / WEB-INF / classes" dizinine kopyalayın
"Src / main / webapp /" dizinini (statik kaynaklar ve WEB-INF / web.xml dosyası) "build / tomcat" dizinine kopyalayın
Bağımlı jar paketini "build / tomcat / WEB-INF / lib" dizinine kopyalayın
3.7.2. Tomcat örneğini oluşturun
Mevcut uygulama tarafından kullanılan Tomcat örnek dizininin zaten mevcut olup olmadığını belirleyin. Zaten varsa, işlenmeyecektir.
Mevcut uygulama tarafından kullanılan Tomcat örnek dizini yoksa, bir Tomcat örneği oluşturmak için aşağıdaki işlemleri gerçekleştirin:
"TOMCAT_INSTANCE_4IDEA" ortam değişkeninin parametre değerine karşılık gelen dizinde veya geçerli kullanıcı dizininin ".tomcat_idea" dizininde, geçerli Web uygulaması tarafından kullanılan Tomcat örnek dizinini oluşturun ve dizin olarak Gradle "startTomcat" görevi yürütüldüğünde "appName" parametre değerini kullanın isim;
Belirtilen "TOMCAT_HOME_4IDEA" ortam değişkeni parametre değerini, kullanılacak Tomcat kurulum dizininin bin ve conf dizinlerini mevcut Web uygulaması tarafından kullanılan Tomcat örnek dizinine kopyalayın;
Geçerli Web uygulaması tarafından kullanılan Tomcat örnek dizininde günlükleri, geçici ve çalışma dizinlerini oluşturun.
3.7.3. Tomcat içerik tanımlayıcı dosyasının işlenmesi
Bağlam tanımlayıcı, adlandırılmış kaynaklar veya oturum yöneticisi yapılandırması gibi Tomcat ile ilgili bağlam yapılandırmasını içeren bir XML dosyasıdır. Tomcat başladığında, ilk olarak bağlam tanımlayıcı konuşlandırılacaktır. Https://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html adresine başvurabilirsiniz.
Bağlam tanımlayıcısının, geçerli web uygulaması tarafından kullanılan Tomcat örnek dizininin "conf \ Catalina \ localhost" dizinine kaydedilmesi gerekir. Geçerli web uygulamasının bağlam yolu, bağlam tanımlayıcı dosya adıyla (.xml soneki hariç) ve bağlam yolunun boyutuyla aynıdır Yazma, dosya adının durumu ile tutarlıdır.
RunTomcat.gradle betiği, mevcut web uygulamasına karşılık gelen Tomcat örneğinin bağlam tanımlayıcısını kontrol eder. Dosya zaten varsa ve içeriğin değiştirilmesi gerekmiyorsa, yazma işlemi gerçekleştirilmez; dosya yoksa veya dosyanın içeriğinin değiştirilmesi gerekiyorsa, dosya yazma işlemi gerçekleştirilir. işletme.
3.7.4. Tomcat örneği başlatma / durdurma komut dosyası oluşturun
Tomcat örneği başlatma / durdurma komut dosyası, geçerli web uygulamasına karşılık gelen Tomcat örnek dizinine kaydedilecektir.
RunTomcat.gradle betiği, karşılık gelen betik dosyasını kontrol edecek ve yazılması gerektiğinde yazacaktır.
Tomcat örnek dizinindeki "bin \ startup.bat" komut dosyası başlangıç komut dosyasında, Tomcat örnek dizinindeki "bin \ shutdown.bat" komut dosyası durdurma komut dosyasında çağrılır.
3.7.5. Tomcat'i başlatın
RunTomcat.gradle komut dosyası, Tomcat'i başlatmak için oluşturulan Tomcat örneği başlangıç komut dosyasını yürütür.
3.7.6. Web Uygulamasında Hata Ayıklama
Yukarıdaki uzaktan hata ayıklama, JDWP (Java Hata Ayıklama Tel Protokolü) kullanır, lütfen https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/jdwp-spec.html adresine bakın, JDWP hata ayıklayıcı içindir Hata ayıkladığı Java sanal makinesi arasındaki iletişim protokolü.
JPDA (Java Platform Hata Ayıklayıcı Mimarisi), masaüstü sisteminin geliştirme ortamında kullanmak üzere hata ayıklayıcı için üç arabirim içerir. JDWP bunlardan biridir. JPDA'nın açıklaması için lütfen https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/ adresine bakın.
JPDA bağlantısında ve arama detaylarında (https://docs.oracle.com/javase/8/docs/technotes/guides/jpda/conninv.html), suspend parametresi "y" olduğunda VMStartEvent'in SUSPEND_ALL kullanacağı belirtilir. Bir askıya alma stratejisi olarak, askıya alma parametresi "n" olduğunda, VMStartEvent, askıya alma stratejisi olarak SUSPEND_NONE kullanacaktır.
Referans
https://docs.oracle.com/javase/8/docs/jdk/api/jpda/jdi/com/sun/jdi/request/EventRequest.html, olay gerçekleştiğinde SUSPEND_ALL'un tüm konuları askıya alacağını belirtir; SUSPEND_NONE olayda İş parçacığı gerçekleştiğinde askıya alınmayacaktır.
Yukarıdaki açıklamaya göre, Java işleminin hata ayıklama parametresindeki askıya alma parametresi "y" olduğunda, tüm evreler başlangıçta geçici olarak başlatılacak, askıya alma parametresi "n" olduğunda, başlangıçta geçici evreler olmayacaktır.
Yazar: Zheng Yi, Java geliştirme geçmişi