Stvaranje i konfiguriranje Jetty 9 poslužitelja u Javi

1. Pregled

U ovom ćemo članku govoriti o programskom stvaranju i konfiguriranju instance Jetty.

Jetty je HTTP poslužitelj i spremnik za servlet dizajniran da bude lagan i lako ugradiv. Pogledat ćemo kako postaviti i konfigurirati jednu ili više instanci poslužitelja.

2. Ovisnosti Mavena

Za početak želimo dodati Jetty 9 sa sljedećim Mavenovim ovisnostima u našu pom.xml:

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

3. Stvaranje osnovnog poslužitelja

Okretanje ugrađenog poslužitelja s Jettyom jednostavno je poput pisanja:

Poslužiteljski poslužitelj = novi poslužitelj (); server.start ();

Isključivanje je jednako jednostavno:

server.stop ();

4. Rukovatelji

Sada kada je naš poslužitelj pokrenut i pokrenut, moramo ga uputiti što učiniti s dolaznim zahtjevima. To se može izvesti pomoću Rukovatelj sučelje.

Mogli bismo ga sami stvoriti, ali Jetty već nudi skup implementacija za najčešće slučajeve upotrebe. Pogledajmo dva od njih.

4.1. WebAppContext

The WebAppContext klasa omogućuje vam delegiranje obrade zahtjeva u postojeću web aplikaciju. Aplikacija se može pružiti ili kao put do WAR datoteke ili kao put do mape webapp.

Ako želimo izložiti aplikaciju u kontekstu "myApp", napisali bismo:

Rukovatelj webAppHandler = novi WebAppContext (webAppPath, "/ myApp"); server.setHandler (webAppHandler);

4.2. HandlerCollection

Za složene aplikacije čak možemo odrediti više od jednog rukovatelja pomoću HandlerCollection razred.

Pretpostavimo da smo implementirali dva prilagođena rukovatelja. Prvi izvodi samo operacije bilježenja, dok drugi stvara i vraća stvarni odgovor korisniku. Svaki dolazni zahtjev želimo obraditi s obojicom ovim redoslijedom.

Evo kako to učiniti:

Rukovatelji rukovateljem = new HandlerCollection (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (obrađivači);

5. Konektori

Sljedeća stvar koju želimo učiniti je konfiguriranje adresa i portova koje će poslužitelj slušati i dodavanje praznog hoda.

The Poslužitelj class deklarira dva konstruktora pogodnosti koji se mogu koristiti za vezanje na određeni port ili adresu.

Iako ovo može biti u redu kada se radi s malim aplikacijama, neće biti dovoljno ako želimo otvoriti više veza na različitim utičnicama.

U ovoj situaciji, Jetty nudi Konektor sučelje i preciznije ServerConnector klasa koja omogućuje definiranje različitih parametara konfiguracije veze:

ServerConnector konektor = novi ServerConnector (poslužitelj); konektor.setPort (80); konektor.setHost ("169.20.45.12"); konektor.setIdleTimeout (30000); server.addConnector (konektor);

S ovom konfiguracijom poslužitelj će slušati na 169.20.45.12:80. Svaka veza uspostavljena na ovoj adresi imat će vremensko ograničenje od 30 sekundi.

Ako trebamo konfigurirati druge utičnice, možemo dodati druge konektore.

6. Zaključak

U ovom smo se brzom vodiču usredotočili na to kako postaviti ugrađeni poslužitelj s Jettyjem. Također smo vidjeli kako izvesti daljnje konfiguracije pomoću Rukovatelji i Konektori.

Kao i uvijek, sav ovdje korišten kod može se pronaći na GitHubu.