Vytváranie a konfigurácia servera Jetty 9 v prostredí Java

1. Prehľad

V tomto článku si povieme o programovom vytváraní a konfigurácii inštancie Jetty.

Jetty je server HTTP a kontajner servletu navrhnutý tak, aby bol ľahký a ľahko vložiteľný. Pozrime sa, ako nastaviť a nakonfigurovať jednu alebo viac inštancií servera.

2. Maven závislosti

Na začiatok chceme pridať Jetty 9 s nasledujúcimi závislosťami Maven do našej pom.xml:

 org.eclipse.jetty jetty-server 9.4.8.v20171121 org.eclipse.jetty jetty-webapp 9.4.8.v20171121 

3. Vytvorenie základného servera

Otočenie zabudovaného servera pomocou Jetty je také ľahké ako písanie:

Server server = nový server (); server.start ();

Vypnutie je rovnako jednoduché:

server.stop ();

4. Manipulátori

Teraz, keď je náš server funkčný, musíme ho poučiť, čo má robiť s prichádzajúcimi požiadavkami. To je možné vykonať pomocou Psovod rozhranie.

Mohli by sme si ich vytvoriť sami, ale Jetty už poskytuje sadu implementácií pre najbežnejšie prípady použitia. Pozrime sa na dve z nich.

4.1. WebAppContext

The WebAppContext trieda umožňuje delegovať spracovanie požiadaviek na existujúcu webovú aplikáciu. Aplikáciu je možné poskytnúť buď ako cestu k súboru WAR, alebo ako cestu k priečinku webapp.

Ak chceme vystaviť aplikáciu v kontexte „myApp“, napíšeme:

Handler webAppHandler = nový WebAppContext (webAppPath, "/ myApp"); server.setHandler (webAppHandler);

4.2. HandlerCollection

Pre zložité aplikácie môžeme dokonca určiť viac ako jeden obslužný program pomocou HandlerCollection trieda.

Predpokladajme, že sme implementovali dva vlastné manipulátory. Prvý vykonáva iba logovacie operácie, zatiaľ čo druhý vytvára a odosiela späť skutočnú odpoveď používateľovi. Chceme každú prichádzajúcu žiadosť spracovať s oboma v tomto poradí.

Postup je nasledovný:

Handler handlers = new HandlerCollection (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (obslužné rutiny);

5. Konektory

Ďalšou vecou, ​​ktorú chceme urobiť, je nakonfigurovať, na ktorých adresách a portoch bude server počúvať, a pridať časový limit nečinnosti.

The Server trieda deklaruje dva konštruktory, ktoré sa dajú použiť na vytvorenie väzby na konkrétny port alebo adresu.

Aj keď to môže byť v poriadku pri práci s malými aplikáciami, nebude to stačiť, ak chceme otvoriť viac pripojení na rôznych zásuvkách.

V tejto situácii poskytuje Jetty Konektor rozhranie a konkrétnejšie ServerConnector trieda, ktorá umožňuje definovať rôzne konfiguračné parametre pripojenia:

Konektor ServerConnector = nový ServerConnector (server); connector.setPort (80); connector.setHost ("169.20.45.12"); connector.setIdleTimeout (30000); server.addConnector (konektor);

S touto konfiguráciou bude server počúvať 169.20.45.12:80. Každé pripojenie nadviazané na tejto adrese bude mať časový limit 30 sekúnd.

Ak potrebujeme nakonfigurovať ďalšie zásuvky, môžeme pridať ďalšie konektory.

6. Záver

V tomto rýchlom výučbe sme sa zamerali na to, ako nastaviť zabudovaný server s Jetty. Tiež sme videli, ako vykonať ďalšie konfigurácie pomocou Manipulanti a Konektory.

Ako vždy, všetky tu použité kódy nájdete na GitHub.


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