Kata pengantar
Proyek boot musim semi biasanya dijalankan di server Tomcat atau Jetty tertanam, dan mereka jarang menggunakan paket perang untuk digunakan ke wadah layanan eksternal. Bahkan jika ditempatkan di Linux, mereka biasanya memulai kelas aplikasi secara langsung. Namun, kadang -kadang kita perlu menyebarkan ke server eksternal, yang agak merepotkan untuk boot musim semi.
Di bawah ini adalah catatan masalah yang dihadapi di Tomcat ketika Anda menggunakan proyek Springboot pertama. Tiga hal yang perlu Anda perhatikan: sakit kepala ...
Detail adalah sebagai berikut:
1. Springboot memiliki wadah Tomcat bawaannya sendiri, jadi Anda harus mengatakannya untuk tidak menggunakan wadah bawaan dan tidak menentukan konfigurasi versi Tomcat sebagai berikut:
<dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-tomcat </artifactid> <scope> Disediakan </opope> </dependency>
2. Kelas aplikasi perlu diubah sebagai berikut, di mana mengecualikan adalah mengabaikan anotasi database (saya tidak membuat database):
ApplicationApplication (EXCLUDUE = {DATASOURCEAUTOConfiguration.Class, DataSourCeTransActionManAgerAutoconfiguration.class, hibernateJPaautoconfiguration.class {classicle {@override springbike (@override springbike (@override springbike (eoverride springbike (eoverride springboClicer {@override springperdery application.sources (application.class); } public static void main (string [] args) melempar Exception {springApplication.run (application.class, args); }}3. Versi JDK harus selalu! Saya mulai menggunakan JDK1.7 untuk server dan 1.8 untuk lingkungan lokal. Akibatnya, itu normal untuk debugging dan berjalan lokal. Server Tomcat dimulai secara normal, akses JSP normal, semua antarmuka adalah 404, dan konsolnya tidak memiliki tanda springboot! Lai Lai Lai Diteliti sepanjang hari ... sakit kepala ...
Kode saya:
pom.xml
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/maven-v4_0_0.xsd "> <podelversion> 4.0.0 </pesodversion> <Artifactid> wechatserver </arttifactid> <packaging> war </packaging> <rurl> http://maven.apache.org </packaging> <ubl> http://maven.apache <GroupId> org.springframework.boot </proupid> <ArtifactId> Spring-boot-starter-parent </arttifactid> <version> 1.4.0.release </version> </sarent> <proybuild.build.sourceencoding> UTF-8 </proild.build.sover.sourceCoding> UTF-8 </proild.build.ouring <Java.Version> 1.8 </java.version> </ Properties> <dependencies> <dependency> <Groupid> org.springframework.boot </proupid> <Raintifactid> Kontainer spring-boot-boot-weB ke dalam container spring-in dari warfactid> <!-Kecuali Contacle Built-In Contacle, Contacle-in Contacle-in Contacle-to Bount-In Contontals To Contacle To Contacle To Exporting To Warfactid To Excorting To Spring To Contacle To Spring-In To Contacle To Spring-In Foildes To </Dependency> <dependency> <GroupId> org.springframework.boot </groupid> <t Artifactid> Spring-boot-starter-tomcat </arttifactid> <scope> disediakan </scopeD> </artifactid> <roupid> Javax.servlet </groupid> <Ruppendency> <RoupIx. <dependency> <GroupId> mysql </sroupId> <ArTifactId> mysql-connector-java </stifactid> </dependency> <dependency> <groupid> org.springframework.boot </groupid> <Artifactid> SPRING-STARTER-STARTER-JDBC </ARTIFACID> <ArTifactid> </Artifactid> SPRING-STARTER-STARTER-JDBC </ARTIFACID> <ArTifactId> dom4j </stifactid> <version> 1.6.1 </version> </dependency> <dependency> <groupid> com.thoughtworks.xstream </groupid> <ArtifactId> xStream </artifactid> <version> 1.4.10 </Versi> </Dependency> </groupping. <ArTifactId> Spring-Boot-DevTools </artifactid> <pilihan> true </portsional> <!-opsional = true, ketergantungan tidak akan dilewati, proyek tergantung pada devtools; Jika proyek yang tergantung pada proyek myboot ingin menggunakan devtools, itu perlu diperkenalkan kembali-> </dependency> </dependencies> <!-memodifikasi pengaturan pengemasan-> <build> <dlugin> <!-<plugin> <groupid> org.springframework.boot </groupid> <sartifactid> <sroupid> org.springframework.boot </groupid> <sartifactid> <troffacid> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <encoding>${project.build.sourceEncoding}</encoding> <skipTests>true</skipTests> <!-- Name when typing it into a war package -> <Warname> WeChatserver </ Warname> <!-Jalur utama diaktifkan saat MAVE (karena fungsi utama juga ditambahkan saat menguji dalam paket lain)-> <sainclass> $ {start-class} </sainclass> <Skip> true </ skip> <!-Skip test-<testfailureignore <skip> true </skip> <!-Skip test-<testfailureignore <skip> </skip> <! <agailonmissingWebXml> false </ag failonmissingwebxml> </configuration> </lugin> </dugin> </build> </poject> Kelas Aplikasi:
paket weChatservice.app; impor org.springframework.boot.springapplication; impor org.springframework.boot.autoconfigure.springbootApplication; impor org.springframework.boot.autoconfigure.jdbc.datasourceautoconfiguration; impor org.springframework.boot.autoconfigure.jdbc.datasourcetransactionManagerautoconfiguration; impor org.springframework.boot.autoconfigure.orm.jpa.hibernateJPaautoconfiguration; impor org.springframework.boot.builder.springapplicationBuilder; impor org.springframework.boot.web.support.springbootervletInitializer; impor org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.RestController; ApplicationApplication (EXCLUDUE = {DATASOURCEAUTOConfiguration.Class, DataSourCeTransActionManAgerAutoconfiguration.class, hibernateJPaautoconfiguration.class {classicle {@override springbike (@override springbike (@override springbike (eoverride springbike (eoverride springboClicer {@override springperdery application.sources (application.class); } public static void main (string [] args) melempar Exception {springApplication.run (application.class, args); }} Halo Permintaan:
@RestController @RequestMapping kelas publik LogIncontroller {@RequestMapping ("/hello/{myname}") indeks string (@pathvariable string myName) {return "hello"+myName+"!!!"; }}Saya hanya mengonfigurasi port untuk application.properties, tetapi setelah penyebaran ke Tomcat, itu tidak akan berfungsi di sini:
server.port = 80
Struktur Direktori Saya:
Akhirnya kode lengkap saya: http://xiazai.vevb.com/201803/yuanma/wechatserver(vevb.com).rar
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.