כיצד לפרוס קובץ WAR לטומקט

1. סקירה כללית

Apache Tomcat הוא אחד משרתי האינטרנט הפופולאריים ביותר בקהילת Java. זה נשלח כ- מיכל סרבל המסוגל לשרת ארכיוני אינטרנט עם סיומת WAR.

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

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

2. מבנה טומקט

לפני שנתחיל, עלינו להכיר כמה משתני טרמינולוגיה וסביבה.

2.1. משתני סביבה

אם עבדת עם Tomcat בעבר, אלה יהיו מוכרים לך מאוד:

$ CATALINA_HOME

משתנה זה מצביע על הספרייה בה מותקן השרת שלנו.

$ CATALINA_BASE

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

יישומי אינטרנט פרוסים תחת ה- $ CATALINA_HOME \ אפליקציות אינטרנט מַדרִיך.

2.2. טרמינולוגיה

שורש המסמך. הכוונה לספרייה ברמה העליונה של יישום אינטרנט, שבו כל משאבי היישומים ממוקמים כמו קבצי JSP, דפי HTML, שיעורי Java ותמונות.

נתיב הקשר. מתייחס למיקום שהוא יחסית לכתובת השרת ומייצג את שם יישום האינטרנט.

לדוגמא, אם יישום האינטרנט שלנו נמצא תחת ה- $ CATALINA_HOME \ webapps \ myapp בספרייה, ניתן לגשת אליו באמצעות כתובת ה- URL // localhost / myapp, ונתיב ההקשר שלה יהיה / myapp.

מִלחָמָה. האם הסיומת של קובץ החבילה היררכיית ספריית יישומי אינטרנט בפורמט ZIP היא קיצור של ארכיון האינטרנט. יישומי אינטרנט של Java ארוזים בדרך כלל כקבצי WAR לפריסה. ניתן ליצור קבצים אלה בשורת הפקודה או באמצעות IDE כמו Eclipse.

לאחר פריסת קובץ ה- WAR שלנו, Tomcat פורש אותו ואוחסן את כל קבצי הפרויקט ב- אפליקציות רשת ספריה בספרייה חדשה על שם הפרויקט.

3. התקנת Tomcat

שרת האינטרנט Tomcat Apache הוא תוכנה חינמית שניתן להוריד מהאתר שלהם. נדרש שיהיה מכשיר JDK זמין במחשב המשתמש ושה- JAVA_HOME משתנה הסביבה מוגדר כהלכה.

3.1. התחל את טומקט

אנו יכולים להפעיל את שרת Tomcat פשוט על ידי הפעלת ה- סטארט - אפ סקריפט שנמצא בכתובת $ CATALINA_HOME \ bin \ startup. יש .עטלף ו .sh בכל התקנה.

בחר באפשרות המתאימה, תלוי אם אתה משתמש במערכת הפעלה מבוססת Windows או Unix.

3.2. הגדר תפקידים

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

כדי לקבל גישה לדשבורד שמשתמש מנהל הניהול זקוק לו מנהל-גוי תַפְקִיד. בהמשך נצטרך לפרוס קובץ WAR באמצעות Maven, לשם כך אנו זקוקים ל- מנהל-תסריט גם תפקיד.

בואו נעשה את השינויים האלה $ CATALINA_HOME \ conf \ tomcat-users:

פרטים נוספים על תפקידי Tomcat השונים ניתן למצוא באמצעות קישור רשמי זה.

3.3. הגדר הרשאות מדריך

לבסוף, ודא שיש הרשאת קריאה / כתיבה בספריית ההתקנה של Tomcat.

3.4. בדיקת התקנה

כדי לבדוק שה- Tomcat הותקן כהלכה, הפעל את סקריפט ההפעלה (startup.bat/startup.sh), אם לא מוצגות שגיאות בקונסולה נוכל לבדוק פעמיים על ידי ביקור // localhost: 8080.

אם אתה רואה את דף הנחיתה של Tomcat, התקנו את השרת כהלכה.

3.5. פיתור סכסוך יציאות

כברירת מחדל, Tomcat מוגדר להקשיב לחיבורים ביציאה 8080. אם יש יישום אחר שכבר קשור ליציאה זו, קונסולת האתחול תודיע לנו על כך.

כדי לשנות את היציאה, אנו יכולים לערוך את קובץ תצורת השרת server.xml ממוקם ב $ CATALINA_HOME \ conf \ server.xml. כברירת מחדל, תצורת המחברים היא כדלקמן:

למשל, אם אנו רוצים לשנות את היציאה ל 8081אז נצטרך לשנות את תכונת היציאה של המחבר כך:

לעיתים, היציאה שבחרנו אינה פתוחה כברירת מחדל, במקרה זה נצטרך לפתוח יציאה זו עם הפקודות המתאימות בגרעין יוניקס או יצירת כללי חומת האש המתאימים ב- Windows, כיצד הדבר נעשה מעבר לתחום של המאמר הזה.

4. פרוס ממייבן

אם אנו רוצים להשתמש ב- Maven לפריסת ארכיוני האינטרנט שלנו, עלינו להגדיר את Tomcat כשרת ב- Maven. settings.xml קוֹבֶץ.

ישנם שני מיקומים שבהם settings.xml ניתן למצוא קובץ:

  • ההתקנה של Maven: $ {maven.home} /conf/settings.xml
  • התקנת משתמש: $ {user.home} /. m2 / settings.xml

לאחר שמצאת אותו הוסף את Tomcat כדלקמן:

 סיסמת הניהול של TomcatServer 

כעת נצטרך ליצור יישום אינטרנט בסיסי מ Maven כדי לבדוק את הפריסה. בוא ננווט למקום שבו נרצה ליצור את היישום.

הפעל פקודה זו במסוף כדי ליצור יישום אינטרנט חדש ב- Java:

ארכיטיפ mvn: ליצור -DgroupId = com.baeldung -DartifactId = tomcat-war-deployment -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

פעולה זו תיצור יישום אינטרנט מלא בספריה פריסת tomcat-war אשר, אם נפרוס כעת וניגש דרך הדפדפן, מודפס שלום עולם!.

אך לפני שנעשה זאת עלינו לבצע שינוי אחד כדי לאפשר פריסת Maven. אז ראש אל pom.xml והוסף תוסף זה:

 org.apache.tomcat.maven tomcat7-maven-plugin 2.2 // localhost: 8080 / manager / text TomcatServer / myapp 

שים לב שאנחנו משתמשים בתוסף Tomcat 7 מכיוון שהוא עובד בשתי הגרסאות 7 ו- 8 ללא שינויים מיוחדים.

התצורה url הוא כתובת האתר שאליה אנו שולחים את הפריסה שלנו, טומקט יידע מה לעשות איתה. ה שרת אלמנט הוא שם מופע השרת אותו Maven מזהה. סוף - סוף, ה נָתִיב אלמנט מגדיר את מסלול הקשר של הפריסה שלנו.

המשמעות היא שאם הפריסה שלנו תצליח, ניגש ליישום האינטרנט על ידי לחיצה // localhost: 8080 / myapp.

כעת נוכל להפעיל את הפקודות הבאות ממייבן.

כדי לפרוס את אפליקציית האינטרנט:

mvn tomcat7: לפרוס

כדי לפרוס אותו:

mvn tomcat7: לפרוס מחדש

כדי לפרוס מחדש לאחר ביצוע שינויים:

mvn tomcat7: פריסה מחדש

5. פרוס עם תוסף מטען

מטען היא ספרייה רב-תכליתית המאפשרת לנו לתפעל את סוג מכלי היישומים השונים בצורה סטנדרטית.

5.1. הגדרת פריסת מטענים

בחלק זה נבחן כיצד להשתמש בתוסף Maven של Cargo כדי לפרוס WAR ל- Tomcat, במקרה זה נפרוס אותו למופע גרסה 7.

כדי להשיג אחיזה איתנה בכל התהליך, נתחיל מאפס ביצירת יישום אינטרנט חדש של Java משורת הפקודה:

ארכיטקט mvn: צור -DgroupId = com.baeldung -DartifactId = מטען-פריסה -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

זה ייצור יישום אינטרנט שלם ב- Java פרוס מטען מַדרִיך. אם נבנה, נפרוס ונטען את היישום הזה כמו שהוא, הוא יודפס שלום עולם! בדפדפן.

בניגוד לתוסף Tomcat7 Maven, תוסף Cargo Maven דורש שקובץ זה יהיה קיים.

מכיוון שאפליקציית האינטרנט שלנו אינה מכילה servlets כלשהם, שלנו web.xml הקובץ יהיה בסיסי מאוד. אז נווט אל WEB-INF התיקייה של הפרויקט החדש שנוצר וליצור web.xml קובץ עם התוכן הבא:

  index.jsp 

כדי לאפשר ל- Maven לזהות את הפקודות של Cargo מבלי להקליד את השם המלא, עלינו להוסיף את התוסף Cargo Maven לקבוצת תוספים ב- Maven settings.xml.

כילד מיידי לשורש אלמנט, הוסף את זה:

 org.codehaus.cargo 

5.2. פריסה מקומית

בסעיף קטן זה, נערוך את pom.xml כדי להתאים לדרישות הפריסה החדשות שלנו.

הוסף את התוסף באופן הבא:

   org.codehaus.cargo cargo-maven2-plugin 1.5.0 tomcat7x מותקן הוסף נתיב מוחלט להתקנת tomcat 7 קיים הוסף נתיב מוחלט להתקנת tomcat 7 

הגרסה האחרונה בזמן כתיבת שורות אלה היא 1.5.0. עם זאת, תמיד ניתן למצוא את הגרסה האחרונה כאן.

שים לב שאנו מגדירים את האריזה במפורש כ- WAR, ללא זה, המבנה שלנו ייכשל. בסעיף התוספים, לאחר מכן אנו מוסיפים את תוסף המטען maven2. בנוסף, אנו מוסיפים קטע תצורה שבו אנו אומרים ל- Maven שאנחנו משתמשים במיכל Tomcat וגם בהתקנה קיימת.

על ידי הגדרת סוג המיכל ל- מוּתקָן, אנו אומרים ל- Maven שיש לנו התקנה של מופע על המכונה ואנחנו מספקים את ה- URL המוחלט להתקנה זו.

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

החלופה תהיה להורות למטען להוריד ולהתקין את הגרסה שצוינה על ידי מתן כתובת URL. עם זאת, ההתמקדות שלנו היא בפריסת WAR.

ראוי לציין כי בין אם אנו משתמשים ב- Maven 2.x או ב- Maven 3.x, תוסף המטען maven2 עובד עבור שניהם.

כעת אנו יכולים להתקין את היישום שלנו על ידי ביצוע:

להתקין mvn

ופריסה על ידי ביצוע:

מטען mvn: לפרוס

אם הכל ילך כשורה, עלינו להיות מסוגלים להריץ את יישום האינטרנט שלנו באמצעות טעינה // localhost: 8080 / פריסת מטען.

5.3. פריסה מרחוק

כדי לבצע פריסה מרחוק, עלינו לשנות רק את קטע התצורה של שלנו pom.xml. פריסה מרחוק פירושה שאין לנו התקנה מקומית של Tomcat אלא שיש לנו גישה ללוח המחוונים של המנהל בשרת מרוחק.

אז בואו נשנה את pom.xml כך שקטע התצורה נראה כך:

  tomcat8x admin runtime admin admin // localhost: 8080 / manager / text 

הפעם, אנו משנים את סוג המיכל מ- מוּתקָן ל מְרוּחָק וסוג התצורה מ- קיים ל זמן ריצה. לבסוף, אנו מוסיפים לתצורה מאפייני אימות וכתובות אתרים מרוחקים.

ודא שהתפקידים והמשתמשים כבר נמצאים $ CATALINA_HOME / conf / tomcat-users.xml בדיוק כמו קודם.

אם אתה עורך את אותו פרויקט עבור מְרוּחָק פריסה, בטל תחילה את פריסת המלחמה הקיימת:

מטען mvn: לפרוס

נקה את הפרויקט:

mvn נקי

התקן את זה:

להתקין mvn

לבסוף, פרוס אותו:

מטען mvn: לפרוס

זהו זה.

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

Eclipse מאפשר לנו להטמיע שרתים כדי להוסיף פריסת פרויקטים באינטרנט בתהליך העבודה הרגיל מבלי לנווט הרחק מה- IDE.

6.1. הטמע את טומקט בליקוי חמה

אנו יכולים להטמיע התקנה בליקוי חמה על ידי בחירה ב חַלוֹן פריט בתפריט משורת המשימות ואז העדפות מהרשימה הנפתחת.

נמצא רשת עץ של פריטי העדפה בחלונית השמאלית של החלון שמופיע. לאחר מכן אנו יכולים לנווט אל ליקוי חמה -> שרתים או פשוט להקליד שרתים בסרגל החיפוש.

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

בצד ימין של החלונית, יופיע דף תצורה בו נבחר באפשרות אפשר להפעלת גרסת שרת זו ועיון בתיקיית ההתקנה.

אנו מיישמים שינויים ובפעם הבאה שנפתח את תצוגת השרתים מ- Eclipse חלונות -> להציג תצוגה תפריט משנה, השרת החדש שהוגדר יהיה קיים ואנחנו יכולים להפעיל, לעצור ולפרוס אליו יישומים.

6.2. פרוס יישום אינטרנט ב- Tomcat מוטבע

כדי לפרוס יישום אינטרנט ל- Tomcat, הוא חייב להתקיים בסביבת העבודה שלנו.

פתח את ה שרתים נוף מ חלון -> הצג תצוגה ולחפש שרתים. כאשר אנו פתוחים, נוכל פשוט ללחוץ לחיצה ימנית על השרת שהגדרנו ולבחור להוסיף פריסה מתפריט ההקשר שמופיע.

מ ה פריסה חדשה תיבת דו-שיח שמופיעה, פתח את פּרוֹיֶקט נפתח ולחץ על פרויקט האינטרנט.

יש סוג פריסה קטע מתחת ל פּרוֹיֶקט תיבת משולבת כאשר אנו בוחרים ארכיב מפוצץ (מצב פיתוח), השינויים שלנו ביישום יסונכרנו בשידור חי מבלי שנצטרך לפרוס מחדש, זו האפשרות הטובה ביותר במהלך הפיתוח מכיוון שהיא יעילה מאוד.

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

6.3. פרוס יישום אינטרנט במיקום חיצוני

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

אנו יכולים לעקוף הליך זה על ידי פריסה במצב ייצור וציינו את פרוס מיקום בתוך ה פריסה חדשה תיבת דו-שיח ובחירת המלחמה משם.

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

7. פריסה מ- IntelliJ IDEA

כדי לפרוס יישום אינטרנט ל- Tomcat, הוא חייב להתקיים וכבר הורד והותקן.

7.1. תצורה מקומית

פתח את ה לָרוּץ בתפריט ולחץ על ערוך תצורות אפשרויות.

בחלונית משמאל חפש שרת Tomcat, אם זה לא שם לחץ על הסימן + בתפריט, חפש טומקט ובחר מְקוֹמִי. בשדה שם לשים טומקט 7/8 (תלוי בגרסתך).

לחץ על הגדר ... כפתור פנימה טומקט הבית נווט למיקום הבית של ההתקנה שלך ובחר אותו.

לחלופין, הגדר את סטארט - אפ דף להיות // localhost: 8080 / ו יציאת HTTP: 8080, שנה את הנמל לפי הצורך.

עבור אל פְּרִיסָה לחץ על סמל +, בחר חפץ שברצונך להוסיף לשרת ולחץ על אישור

7.2. תצורה מרחוק

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

8. פרוס באמצעות העתקת ארכיון

ראינו כיצד לייצא WAR מ Eclipse. אחד הדברים שאנחנו יכולים לעשות הוא לפרוס אותו פשוט על ידי השלכתו ל $ CATALINA_HOME \ אפליקציות אינטרנט ספריה של כל מופע Tomcat. אם המופע פועל, הפריסה תתחיל באופן מיידי כאשר Tomcat פורק את הארכיון ומגדיר את נתיב ההקשר שלו.

אם המופע אינו פועל, השרת יפרוס את הפרויקט בפעם הבאה שהוא מופעל.

9. פריסה ממנהל Tomcat

בהנחה שכבר יש לנו את קובץ ה- WAR שלנו ונרצה לפרוס אותו באמצעות לוח המחוונים לניהול. תוכל לגשת למרכז השליטה של ​​המנהל על ידי ביקור בכתובת: // localhost: 8080 / מנהל.

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

9.1. פרוס קובץ מדריך או WAR הממוקם בשרת

אם קובץ ה- WAR נמצא בשרת בו מופעל מופע Tomcat, נוכל למלא את הנדרש נתיב הקשר לפני שדה נטוי קדימה "/".

נניח שנרצה לגשת ליישום האינטרנט שלנו מהדפדפן עם כתובת ה- URL // localhost: 8080 / myapp, אז יהיה לשדה נתיב ההקשר שלנו / myapp.

אנו מדלגים על כתובת אתר של קובץ תצורה XML שדה וראש אל WAR או URL של מדריך שדה. כאן אנו מזינים את כתובת האתר המוחלטת לקובץ ה- Web ARchive כפי שהוא מופיע בשרת שלנו. נניח שמיקום הקובץ שלנו הוא C: /apps/myapp.warואז נכנס למיקום זה. אל תשכח את סיומת WAR.

לאחר מכן נוכל ללחוץ לפרוס לַחְצָן. הדף יטען מחדש ואנחנו אמורים לראות את ההודעה:

אישור - יישום פרוס בנתיב ההקשר / myapp

בתחילת הדף.

בנוסף, היישום שלנו אמור להופיע גם ב יישומים קטע של הדף.

9.2. WAR קובץ לפריסה

פשוט לחץ על בחר קובץ לחץ על כפתור, נווט אל מיקום קובץ WAR ובחר בו ואז לחץ על לפרוס לַחְצָן.

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

מידע: פריסת ארכיון יישומי האינטרנט \ path \ to \ deployed_war הסתיימה ב -4,833 ms

10. מסקנה

במהלך רישום זה התמקדנו בפריסת WAR לשרת Tomcat.