Opprette og konfigurere Jetty 9 Server i Java

1. Oversikt

I denne artikkelen vil vi snakke om å lage og konfigurere en bryggeinstans programmatisk.

Jetty er en HTTP-server og servletbeholder designet for å være lett og lett å legge inn. Vi tar en titt på hvordan du konfigurerer og konfigurerer en eller flere forekomster av serveren.

2. Maven-avhengigheter

For å begynne med vil vi legge til Jetty 9 med følgende Maven-avhengigheter i vår pom.xml:

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

3. Opprette en grunnleggende server

Å spinne en innebygd server med Jetty er like enkelt som å skrive:

Server server = ny server (); server.start ();

Å slå det av er like enkelt:

server.stop ();

4. Handlere

Nå som serveren vår er i gang, må vi instruere den om hva vi skal gjøre med innkommende forespørsler. Dette kan utføres ved hjelp av Behandler grensesnitt.

Vi kunne lage en selv, men Jetty tilbyr allerede et sett med implementeringer for de vanligste brukssakene. La oss ta en titt på to av dem.

4.1. WebAppContext

De WebAppContext klasse kan du delegere forespørsel til en eksisterende webapplikasjon. Søknaden kan gis enten som en WAR-filbane eller som en webapp-mappebane.

Hvis vi ønsker å avsløre en applikasjon under "myApp" -konteksten, vil vi skrive:

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

4.2. HandlerCollection

For komplekse applikasjoner kan vi til og med spesifisere mer enn én behandler ved hjelp av HandlerCollection klasse.

Anta at vi har implementert to tilpassede håndtere. Den første utfører bare loggoperasjoner mens den andre oppretter og sender tilbake et faktisk svar til brukeren. Vi ønsker å behandle hver innkommende forespørsel med begge i denne rekkefølgen.

Slik gjør du det:

Handler handlers = new HandlerCollection (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (håndterere);

5. Kontakter

Den neste tingen vi vil gjøre er å konfigurere hvilke adresser og porter serveren skal lytte til og legge til en inaktiv tidsavbrudd.

De Server klasse erklærer to bekvemmelighetskonstruktører som kan brukes til å binde til en bestemt port eller adresse.

Selv om dette kan være greit når du arbeider med små applikasjoner, vil det ikke være nok hvis vi vil åpne flere tilkoblinger på forskjellige kontakter.

I denne situasjonen gir Jetty den Kontakt grensesnitt og mer spesifikt ServerConnector klasse som gjør det mulig å definere forskjellige tilkoblingskonfigurasjonsparametere:

ServerConnector-kontakt = ny ServerConnector (server); connector.setPort (80); connector.setHost ("169.20.45.12"); connector.setIdleTimeout (30000); server.addConnector (kontakt);

Med denne konfigurasjonen vil serveren lytte 169.20.45.12:80. Hver tilkobling som er etablert på denne adressen vil ha en tidsavbrudd på 30 sekunder.

Hvis vi trenger å konfigurere andre kontakter, kan vi legge til andre kontakter.

6. Konklusjon

I denne raske opplæringen fokuserte vi på hvordan du setter opp en innebygd server med Jetty. Vi så også hvordan du kan utføre ytterligere konfigurasjoner ved hjelp av Handlere og Kontakter.

Som alltid kan all koden som brukes her, bli funnet på GitHub.


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