مقدمة
عادةً ما يتم تشغيل مشاريع التمهيد الربيعي في خوادم Tomcat المدمجة أو الرصيف ، ونادراً ما تستخدم حزم الحرب للنشر على حاويات الخدمة الخارجية. حتى لو وضعت في Linux ، فإنها عادة ما تبدأ فئة التطبيق مباشرة. ومع ذلك ، في بعض الأحيان نحتاج إلى النشر على الخوادم الخارجية ، وهو أمر مزعج بعض الشيء بالنسبة للحذاء الربيعي.
فيما يلي سجل للمشاكل التي واجهتها في Tomcat عند نشر مشروع Springboot الأول. ثلاثة أشياء تحتاج إلى الانتباه إليها: الصداع ...
التفاصيل كما يلي:
1. يحتوي Springboot على حاوية Tomcat المدمجة الخاصة بها ، لذلك يجب أن تخبرها بعدم استخدام الحاوية المدمجة ولا تحدد تكوين إصدار Tomcat على النحو التالي:
<Rependency> <roupend> org.springframework.boot </rougeid> <intifactid> Spring-Boot-Starter-Tomcat </suntifactid> <scope> متوفر </scope> </sependency>
2. يجب تغيير فئة التطبيق على النحو التالي ، حيث يستبعد هو تجاهل شرح قاعدة البيانات (لم أقم بإجراء قاعدة البيانات):
springbootapplication (exclude = {dataSourCeautOconFiguration.Class ، datasourCetransActionManageraUtoconFiguration.class ، hibernatejpaautoconfiguration.class}) تطبيق springbootservletializer Application.Sources (application.class) ؛ } public static void main (string [] args) يلقي الاستثناء {springapplication.run (application.class ، args) ؛ }}3. يجب أن يكون إصدار JDK دائمًا! لقد بدأت باستخدام JDK1.7 للخادم و 1.8 للبيئة المحلية. ونتيجة لذلك ، كان من الطبيعي أن يقوم تصحيح الأخطاء والتشغيل المحلي. بدأ خادم Tomcat بشكل طبيعي ، كان وصول JSP طبيعيًا ، وكانت جميع الواجهات 404 ، ولم يكن لدى وحدة التحكم علامة Springboot! ! ! ! بحثت ليوم كامل ... الصداع ...
الكود الخاص بي:
pom.xml
<project xmlns = "http://maven.apache.org/pom/4.0.0" http://maven.apache.org/maven-v4_0_xsd "> <dormversion> 4.0.0 </modelversion> <trifactid> wechatserver </shintifactid> <placking> war </packaging> <Url> http://maven.apache <Groper> org.springframework.boot </groupId> <StifactId> Spring-boot-starter-parent </shotifactid> <الإصدار> 1.4.0.Release </version> </parent> <sproject> <project.build.sourceencoding> utf-8 </project <java.version> 1.8 </java.version> </sprenties> <reperence> <reperency> <roupiD> org.springframework.boot </rougeid> <Stifactid> </reperency> <redency> <roupiD> org.springframework.boot </rougiD> <Chintifactid> Spring-boot-starter-tomcat </stifactid> <scope> يتم توفيره </scope> </sophaCtid> <sperence> <Rependency> <roupend> mysql </rougeid> <StifactId> mysql-connector-java </stifactid> </semplency> <reperence> <roupiD> org.springframework.boot </rougeid> <StifactId> dom4j </stifactid> <الإصدار> 1.6.1 </version> </sependency> <reperence> <roupiD> com.theaughterWorks.xstream </roughid> <StifactId> <StifactId> spring-boot-devtools </artifactId> <اختياري> صحيح </اختياري> <!-اختياري = صحيح ، لن يتم تمرير التبعية ، يعتمد المشروع على devtools ؛ إذا كان المشروع الذي يعتمد على مشروع myBoot يريد استخدام devTools ، فيجب إعادة تقديمه-> </rependency> </rependencies> <!-تعديل إعدادات التغليف-> <build> <clupins> <!-<splongin> <rouciD> org.springframework.boot </groupiD> -> <rector> <rougiD> org.apache.maven.plugins </groupId> <StifactId> maven-war-plugin </shintifactid> <الإصدار> 2.4 </version> <configuration> <تشفير> $ {project.build.sourceencoding} -> <Arname> wechatserver </arname> <!-تمكين المسار الرئيسي عندما يتم إضافة الوظيفة الرئيسية أيضًا عند الاختبار في حزم أخرى)-> <Mainclass <SailonMissingWebxMl> false </ishailonmissingwebxml> </isplicturation> </sultiin> </plugins> </build> </project> فئة التطبيق:
حزمة WeChatservice.App ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.SpringBootApplication ؛ استيراد org.springframework.boot.autoconfigure.jdbc.dataSourCeautoconFiguration ؛ استيراد org.springframework.boot.autoconfigure.jdbc.datasourcetransactionManageraUtoconfiguration ؛ استيراد org.springframework.boot.autoconfigure.orm.jpa.hibernatejpaautoconfiguration ؛ استيراد org.springframework.boot.builder.springapplicationBuilder ؛ استيراد org.springframework.boot.web.support.SpringBootServleTinitializer ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ استيراد org.springframework.web.bind.annotation.restController ؛ springbootapplication (exclude = {dataSourCeautOconFiguration.Class ، datasourCetransActionManageraUtoconFiguration.class ، hibernatejpaautoconfiguration.class}) تطبيق springbootservletializer Application.Sources (application.class) ؛ } public static void main (string [] args) يلقي الاستثناء {springapplication.run (application.class ، args) ؛ }} مرحبا طلب:
RestControllerRequestMapping public class logincontroller {REquestMapping ("/hello/{myName}") index (سلسلة pathvariable myName) {return "hello"+myName+"!!!" ؛ }}أقوم فقط بتكوين المنافذ للتطبيق.
server.port = 80
هيكل الدليل الخاص بي:
أخيرًا رمزتي الكاملة: http://xiazai.vevb.com/201803/yuanma/wechatserver(vevb.com).rar
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.