יצירה ותצורה של שרת Jetty 9 בג'אווה
1. סקירה כללית
במאמר זה נדבר על יצירה והגדרת תצורה של מופע מזח באופן פרוגרמטי.
Jetty הוא שרת HTTP ומיכל סרוולט שתוכננו להיות קלים וניתנים להטמעה. אנו נבדוק כיצד להתקין ולהגדיר תצורה אחת או יותר ממופעים של השרת.
2. תלות Maven
כדי להתחיל, אנו רוצים להוסיף את ג'טי 9 עם התלות הבאות של Maven pom.xml:
org.eclipse.jetty jetty-server 9.4.8.v20171121 org.eclipse.jetty jetty-webapp 9.4.8.v20171121
3. יצירת שרת בסיסי
קל לסובב שרת משובץ עם Jetty כמו לכתוב:
שרת שרת = שרת חדש (); server.start ();
כיבוי זה פשוט באותה מידה:
server.stop ();
4. מטפלים
כעת, כשהשרת שלנו פועל, עלינו להנחות אותו מה לעשות עם הבקשות הנכנסות. ניתן לבצע זאת באמצעות מטפל מִמְשָׁק.
אנו יכולים ליצור אחד בעצמנו, אך ג'טי כבר מספקת מערך יישומים למקרי השימוש הנפוצים ביותר. בואו נסתכל על שניים מהם.
4.1. WebAppContext
ה WebAppContext מחלקה מאפשרת לך להעביר את הטיפול בבקשות ליישום אינטרנט קיים. ניתן לספק את היישום כנתיב קובץ WAR או כנתיב תיקיית webapp.
אם אנו רוצים לחשוף יישום בהקשר "myApp" היינו כותבים:
המטפל webAppHandler = WebAppContext חדש (webAppPath, "/ myApp"); server.setHandler (webAppHandler);
4.2. HandlerCollection
עבור יישומים מורכבים, אנו יכולים אפילו לציין יותר ממטפל אחד באמצעות ה- HandlerCollection מעמד.
נניח שהטמענו שני מטפלים בהתאמה אישית. הראשון מבצע רק פעולות רישום ובינתיים השני יוצר ושולח תגובה ממשית למשתמש. אנו רוצים לעבד כל בקשה נכנסת עם שתיהן בסדר זה.
כך תעשה זאת:
מטפלים במטפלים = HandlerCollection חדש (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (מטפלים);
5. מחברים
הדבר הבא שאנחנו רוצים לעשות הוא להגדיר לאילו כתובות וליציאות השרת יקשיב ולהוסיף פסק זמן לא פעיל.
ה שרת class מצהיר על שני בוני נוחות אשר עשויים לשמש לאגירה ליציאה או לכתובת ספציפיים.
למרות שזה עשוי להיות בסדר כשמדובר ביישומים קטנים, זה לא יספיק אם נרצה לפתוח מספר חיבורים בשקעים שונים.
במצב זה, ג'טי מספק את מַחבֵּר ממשק וליתר דיוק את מחבר שרת מחלקה המאפשרת הגדרת פרמטרים שונים לתצורת חיבור:
מחבר ServerConnector = ServerConnector חדש (שרת); connector.setPort (80); connector.setHost ("169.20.45.12"); connector.setIdleTimeout (30000); server.addConnector (מחבר);
עם תצורה זו השרת יקשיב בתאריך 169.20.45.12:80. זמן הקצאה של כל חיבור בכתובת זו יהיה 30 שניות.
אם עלינו להגדיר שקעים אחרים נוכל להוסיף מחברים אחרים.
6. מסקנה
במדריך מהיר זה התמקדנו כיצד להקים שרת משובץ עם Jetty. ראינו גם כיצד לבצע תצורות נוספות באמצעות מטפלים ו מחברים.
כמו תמיד, ניתן למצוא את כל הקוד המשמש כאן ב- GitHub.