


Bagaimana untuk membungkus SpringBoot ke dalam pakej perang untuk dijalankan di bawah kucing jantan atau lalat liar
Kaedah pembungkusan default springboot ialah pakej jar Kelebihan pakej jar ialah konfigurasi tidak perlu diubah, dan tomcat dibenamkan jika dibungkus ke dalam pakej jar, ia boleh terus dibuang ke dalam docker untuk menjalankan ujian. Walau bagaimanapun, memandangkan kod bahagian hadapan hanya boleh dibungkus ke dalam pakej perang, sudah cukup untuk membungkus kod bahagian belakang ke dalam pakej perang dan menjalankannya bersama-sama dengan kod bahagian hadapan dalam aplikasi web dalam bekas tomcat.
Format pembungkusan SpringBoot
Secara lalai, projek SpringBoot yang dibuat dibungkus dalam format pakej balang. Pada masa yang sama, bekas tomcat terbina dalam.
Jadi, jika anda ingin membungkus springboot ke dalam pakej perang dan mengerahkannya ke bekas seperti lalat liar, apakah yang perlu anda lakukan?
Berikut akan menerangkan setiap langkah bermula daripada mencipta projek.
Buat projek
Tiada kesukaran untuk mencipta projek Hanya gunakan alat idea untuk mencipta projek maven yang mudah dan anda ingin mengubahnya Ia adalah dalam bentuk pakej perang dan boleh diubah suai dengan sewajarnya.
Ubah suai konfigurasi pom.xml
Selepas mencipta projek, ubah suai fail pom.xml dan tambah teg induk.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> </parent>
Jika asalnya projek springboot, ia sudah disertakan dan tidak perlu diubah suai.
Tetapkan kaedah pembungkusan dalam pom.xml kepada perang.
<packaging>war</packaging>
Tambah atau ubah suai konfigurasi kebergantungan, seperti berikut:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Antaranya, kebergantungan tomcat perlu dikecualikan dalam spring-boot-starter-web . Pada masa yang sama, tambahkan kebergantungan servlet-api. Ambil perhatian bahawa kebergantungan yang ditambahkan di sini ialah Servlet2.5.
Gunakan pemalam berikut untuk pembungkusan dalam binaan.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
Mulakan kaedah utama
Jika sudah ada kaedah utama untuk bermula, biarkan kaedah utama mewarisi SpringBootServletInitializer dan melaksanakan kaedahnya. Jika ia adalah projek yang baru dibuat, buat SpringBootApp (kelas permulaan) terus dalam direktori peringkat atas, dan kemudian mulakan diam seperti berikut.
@SpringBootApplication public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootApp.class); } }
Pembungkusan
Hanya laksanakan pembungkusan pakej melalui arahan maven, dan pakej perang boleh dijana dalam direktori sasaran.
Bagi penggunaan tomcat dan wildfly, anda boleh meletakkan pakej perang dalam direktori yang sepadan untuk memulakan perkhidmatan.
Pengecualian
Jika pengecualian yang serupa dengan yang berikut berlaku semasa permulaan (mencadangkan bahawa web.xml tiada):
Ralat semasa memasang WAR: webxml atribut diperlukan (atau WEB-INF/web.xml sedia ada jika melaksanakan dalam mod kemas kini)
Beri perhatian untuk menyemak pemalam pembungkusan fail pom dan sama ada masalah tomcat telah dihapuskan, dan semak sama ada pemalam pembungkusan di atas adalah betul.
Sebab masalahnya ialah: pakej kebergantungan spring-boot-starter-web dirujuk dalam projek springboot. Spring-boot-starter-tomcat yang dirujuk dalam pakej ini mengandungi bekas servlet terbenam tomcat, dan versi berbezanya melaksanakan spesifikasi versi servlet yang berbeza.
Servlet/JSP versi 2.5/2.1 menyokong Tomcat versi 6.0.x, dan versi java minimum ialah 1.5. Servlet/JSP versi 3.0/2.2 menyokong Tomcat versi 7.0.x, dan versi java minimum ialah 1.6.
Memandangkan Servlet2.5 digunakan di atas, pengecualian di atas akan berlaku apabila tiada fail web.xml.
Penyelesaian 1: Apabila versi Servlet kurang daripada 3, buat fail /src/main/webapp/WEB-INF/web.xml.
Penyelesaian 2: Tambahkan pemalam maven-war-plugin di bawah binaan pom.xml. Dan tetapkan failOnMissingWebXml kepada false.
Atas ialah kandungan terperinci Bagaimana untuk membungkus SpringBoot ke dalam pakej perang untuk dijalankan di bawah kucing jantan atau lalat liar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk menggunakan projek JAR ke Tomcat, ikut langkah berikut: Muat turun dan nyahzip Tomcat. Konfigurasikan fail server.xml, tetapkan port dan laluan penggunaan projek. Menyalin fail JAR ke laluan penggunaan yang ditentukan. Mulakan Tomcat. Akses projek yang digunakan menggunakan URL yang disediakan.

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Direktori pemasangan Tomcat: Laluan lalai: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Laluan tersuai: Anda boleh menentukannya semasa pemasangan. Cari direktori pemasangan: gunakan whereis atau locate arahan.

Untuk menggunakan berbilang projek melalui Tomcat, anda perlu mencipta direktori aplikasi web untuk setiap projek dan kemudian: Penggunaan automatik: Letakkan direktori aplikasi web dalam direktori aplikasi web Tomcat. Penggunaan manual: Gunakan projek secara manual dalam aplikasi pengurus Tomcat. Sebaik sahaja projek itu digunakan, ia boleh diakses dengan nama penggunaannya, contohnya: http://localhost:8080/project1.

Cara menyemak bilangan sambungan Tomcat serentak: Lawati halaman Pengurus Tomcat (http://localhost:8080/manager/html) dan masukkan nama pengguna dan kata laluan anda. Klik Status->Sesi dalam bar navigasi kiri untuk melihat bilangan sambungan serentak di bahagian atas halaman.

Direktori akar tapak web Tomcat terletak dalam subdirektori webapps Tomcat dan digunakan untuk menyimpan fail aplikasi web, sumber statik dan direktori WEB-INF ia boleh didapati dengan mencari atribut docBase dalam fail konfigurasi Tomcat.

Nombor port Tomcat boleh dilihat dengan menyemak atribut port elemen <Connector> dalam fail server.xml. Lawati antara muka pengurusan Tomcat (http://localhost:8080/manager/html) dan lihat tab "Status". Jalankan "versi catalina.sh" dari baris arahan dan lihat baris "Port:".

Menjalankan projek dengan nombor port yang berbeza pada pelayan Tomcat memerlukan langkah berikut: Ubah suai fail server.xml dan tambah elemen Penyambung untuk menentukan nombor port. Tambah elemen Konteks untuk menentukan aplikasi yang dikaitkan dengan nombor port. Buat fail WAR dan gunakannya ke direktori yang sepadan (webapps atau webapps/ROOT). Mulakan semula Tomcat untuk menggunakan perubahan.
