Oprettelse og konfiguration af Jetty 9 Server i Java

1. Oversigt

I denne artikel vil vi tale om at oprette og konfigurere en Jetty-forekomst programmatisk.

Jetty er en HTTP-server og servletcontainer designet til at være let og let at integrere. Vi tager et kig på, hvordan man opsætter og konfigurerer en eller flere forekomster af serveren.

2. Maven-afhængigheder

For at starte, vil vi tilføje Jetty 9 med følgende Maven-afhængigheder i vores pom.xml:

 org.eclipse.jetty anløbs-server 9.4.8.v20171121 org.eclipse.jetty anløbsbro-webapp 9.4.8.v20171121 

3. Oprettelse af en basisserver

Spinning af en integreret server med Jetty er lige så let som at skrive:

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

At lukke det ned er lige så simpelt:

server.stop ();

4. Handlere

Nu hvor vores server er i gang, skal vi instruere den om, hvad vi skal gøre med de indgående anmodninger. Dette kan udføres ved hjælp af Handler interface.

Vi kunne oprette en selv, men Jetty leverer allerede et sæt implementeringer til de mest almindelige brugssager. Lad os se på to af dem.

4.1. WebAppContext

Det WebAppContext klasse giver dig mulighed for at delegere anmodningen til en eksisterende webapplikation. Applikationen kan leveres enten som en WAR-filsti eller som en webapp-mappesti.

Hvis vi ønsker at udsætte en ansøgning under "myApp" -konteksten, ville vi skrive:

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

4.2. HandlerCollection

For komplekse applikationer kan vi endda angive mere end én handler ved hjælp af HandlerCollection klasse.

Antag, at vi har implementeret to brugerdefinerede håndterere. Den første udfører kun loggeoperationer, mens den anden opretter og sender et reelt svar tilbage til brugeren. Vi ønsker at behandle hver indgående anmodning med dem begge i denne rækkefølge.

Sådan gør du:

Handlerhandlers = nye HandlerCollection (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (håndtering);

5. Stik

Den næste ting, vi vil gøre, er at konfigurere, hvilke adresser og porte serveren skal lytte til og tilføje en ledig timeout.

Det Server klasse erklærer to bekvemmelighedskonstruktører, der kan bruges til at binde til en bestemt port eller adresse.

Selvom dette kan være ok, når det drejer sig om små applikationer, er det ikke nok, hvis vi vil åbne flere forbindelser på forskellige stikkontakter.

I denne situation leverer Jetty den Stik interface og mere specifikt ServerConnector klasse, der giver mulighed for at definere forskellige forbindelseskonfigurationsparametre:

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

Med denne konfiguration lytter serveren 169.20.45.12:80. Hver forbindelse, der er oprettet på denne adresse, har en timeout på 30 sekunder.

Hvis vi har brug for at konfigurere andre stikkontakter, kan vi tilføje andre stik.

6. Konklusion

I denne hurtige vejledning fokuserede vi på, hvordan man opretter en integreret server med Jetty. Vi så også, hvordan man udfører yderligere konfigurationer ved hjælp af Handlere og Stik.

Som altid kan al den kode, der bruges her, findes på GitHub.


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