פרוס את ה- Boot Boot WAR בשרת Tomcat

1. הקדמה

Spring Boot הוא מוסכמה על מסגרת תצורה המאפשרת לנו להגדיר הגדרה מוכנה לייצור של פרויקט Spring, ו- Tomcat הוא אחד ממכולות Java Servlet הפופולריות ביותר.

כברירת מחדל, Spring Boot בונה יישום Java עצמאי שיכול לפעול כיישום שולחני או להיות מוגדר כשירות מערכת, אך ישנן סביבות שבהן איננו יכולים להתקין שירות חדש או להפעיל את היישום באופן ידני.

מול יישומים עצמאיים, Tomcat מותקן כשירות שיכול לנהל מספר יישומים באותו תהליך יישום, ונמנע מהצורך בהתקנה ספציפית עבור כל יישום.

במדריך זה, אנו ניצור יישום פשוט של Spring Boot ונתאים אותו לעבודה בתוך Tomcat.

2. הגדרת יישום אתחול האביב

אנו מתכוונים להתקין יישום אינטרנט פשוט של אתחול Spring באמצעות אחת מתבניות המתנע הזמינות:

 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE org.springframework.boot spring-boot-starter-web 

אין צורך בתצורות נוספות מעבר לסטנדרט @ SpringBootApplication מאז Spring Boot מטפל בהתקנת ברירת המחדל.

אנו מוסיפים REST EndPoint פשוט להחזרת תוכן חוקי עבורנו:

@RestController מחלקה ציבורית TomcatController {@GetMapping ("/ שלום") אוסף ציבורי sayHello () {return IntStream.range (0, 10) .mapToObj (i -> "Hello number" + i) .collect (Collectors.toList () ); }}

עכשיו בוא נבצע את היישום עם קפיץ אתחול mvn: לרוץ והפעל דפדפן בשעה // localhost: 8080 / שלום כדי לבדוק את התוצאות.

3. יצירת מלחמת אתחול האביב

מכולות Servlet מצפות שהיישומים יעמדו בכמה חוזים שייפרסו. עבור Tomcat החוזה הוא Servlet API 3.0.

כדי שהיישום שלנו יעמוד בחוזה זה, עלינו לבצע כמה שינויים קטנים בקוד המקור.

ראשית, עלינו לארוז יישום WAR במקום JAR. לשם כך אנו משתנים pom.xml עם התוכן הבא:

מִלחָמָה

עכשיו, בואו ונשתנה את הגמר מִלחָמָה שם קובץ כדי להימנע מהכללת מספרי גרסאות:

 $ {artifactId} ... 

לאחר מכן, אנו מוסיפים את התלות של Tomcat:

 org.springframework.boot spring-boot-starter-tomcat מסופק 

לבסוף, אנו מאתחלים את הקשר Servlet הנדרש על ידי Tomcat על ידי יישום ה- SpringBootServletInitializer מִמְשָׁק:

@SpringBootApplication מחלקה ציבורית SpringBootTomcatApplication מרחיב את SpringBootServletInitializer {}

כדי לבנות את אפליקציית WAR הניתנת לפריסת Tomcat, אנו מבצעים אותה את החבילה הנקייה mvn. לאחר מכן, קובץ ה- WAR שלנו נוצר בשעה target / spring-boot-tomcat.war (בהנחה שהמייבון artifactId הוא "קפיץ-מגף-טומט").

עלינו לקחת בחשבון שהתקנה חדשה זו הופכת את אפליקציית Spring Boot שלנו ליישום שאינו עצמאי (אם תרצה שהוא יעבוד שוב במצב עצמאי, הסר את בתנאי היקף מהתלות בטמטקאט).

4. פריסת המלחמה לטומקט

כדי לפתוח את קובץ ה- WAR שלנו ולהפעיל אותו בטומקט, עלינו לבצע את השלבים הבאים:

  1. הורד את אפאצ'י Tomcat וארוז אותו ל- tomcat תיקיה
  2. העתק את קובץ ה- WAR שלנו מ- target / spring-boot-tomcat.war אל ה tomcat / webapps / תיקיה
  3. ממסוף לנווט אל tomcat / bin תיקייה ולבצע
    1. catalina.bat לרוץ (ב- Windows)
    2. קטלינה.ש לרוץ (במערכות מבוססות יוניקס)
  4. לך ל // localhost: 8080 / spring-boot-tomcat / שלום

זו הייתה התקנה מהירה של Tomcat, עיין במדריך להתקנת Tomcat לקבלת מדריך התקנה מלא. ישנן גם דרכים נוספות לפריסת קובץ WAR ל- Tomcat.

5. מסקנה

במדריך קצר זה, יצרנו אפליקציית Spring Boot פשוטה והפכנו אותה ליישום WAR חוקי שניתן לפרוס בשרת Tomcat.

כמו תמיד, קוד המקור המלא של הדוגמאות זמין באתר GitHub.