שגיאת הליקוי: web.xml חסר ו- failOnMissingWebXml מוגדר כ- true

1. הקדמה

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

2. שגיאת ליקוי חמה

ביישומי אינטרנט של Java, web.xml הוא השם הסטנדרטי של מתאר הפריסה.

אנו יכולים ליצור יישום אינטרנט באמצעות Maven או פרויקט אינטרנט דינמי באמצעות Eclipse. Eclipse אינו יוצר את מתאר פריסת ברירת המחדל web.xml תחת WEB-INF / מַדרִיך.

מפרטי Java EE 6+ ניסו להדגיש את מתארי הפריסה מכיוון שניתן להחליפם בהערות. עם זאת, הגרסאות הנמוכות עדיין דורשות זאת.

ה failOnMissingWebXml המאפיין הוא אחד המאפיינים של תוסף המלחמה של Apache Maven, org.apache.maven.plugins: תוסף maven-war. ערך ברירת המחדל של תוסף זה הוא נָכוֹן לגרסה <3.1.0 ו- שֶׁקֶר לגרסאות המאוחרות יותר.

פירוש הדבר שאם אנו משתמשים תוסף המלחמה מוקדם יותר מגירסה 3.1.0, ו- web.xml הקובץ אינו קיים, ואז המטרה לארוז אותו כקובץ מלחמה תיכשל.

3. שימוש web.xml

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

  • לחץ לחיצה ימנית על פרויקט האינטרנט
  • רחף אל כלי Java EE בתפריט
  • בחר צור מתאר פריסה צא מתפריט המשנה

וואלה! ה web.xml קובץ נוצר תחת WEB-INF / מַדרִיך.

4. בלי web.xml

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

4.1. שימוש בתוסף maven-war לפני 3.1.0

אנו יכולים להגדיר את כל התוספים של פרויקט Maven ב החלק שלנו pom.xml. כפי שאמרנו בעבר, ערך ברירת המחדל עבור failOnMissingWebXml הוא נָכוֹן לפני גרסה 3.1.0 של התוסף.

בואו נכריז על תוסף המלחמה בשלנו pom.xml ו להגדיר במפורש את הנכס failOnMissingWebXml ל שֶׁקֶר:

 תוסף maven-war 2.4 כוזב 

4.2. באמצעות תוסף maven-war 3.1.0 ואילך

אנו יכולים גם להימנע מהגדרת הנכס במפורש על ידי שדרוג הגרסה של תוסף המלחמה. ערך ברירת המחדל של הנכס failOnMissingWebXml הוא שֶׁקֶר ל תוסף המלחמה גרסה 3.1.0 ואילך:

 תוסף maven-war 3.1.0 

5. מסקנה

במאמר זה ראינו את הסיבה מאחורי הנעדרים web.xml שגיאה וגישות מרובות כדי לתקן את זה.

כרגיל, ניתן למצוא את הדוגמה שלנו ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found