Jetty 9 Server létrehozása és beállítása Java-ban

1. Áttekintés

Ebben a cikkben a Jetty-példány programozott létrehozásáról és konfigurálásáról beszélünk.

A móló egy HTTP kiszolgáló és szervlet tároló, amelyet könnyűvé és könnyen beágyazhatóvá alakítottak. Megnézzük, hogyan lehet beállítani és konfigurálni a szerver egy vagy több példányát.

2. Maven-függőségek

Először is fel akarjuk venni a 9. mólót a következő Maven-függőségekkel pom.xml:

 org.eclipse.jetty móló-kiszolgáló 9.4.8.v20171121 org.eclipse.jetty móló-webapp 9.4.8.v20171121 

3. Alapkiszolgáló létrehozása

A beágyazott szerver futtatása a Jetty-mel ugyanolyan egyszerű, mint az írás:

Kiszolgálószerver = új kiszolgáló (); server.start ();

Leállítása ugyanolyan egyszerű:

server.stop ();

4. Kezelők

Most, hogy szerverünk működik, és oktatnunk kell, hogy mi legyen a beérkező kérésekkel. Ez a Handler felület.

Magunk is létrehozhatnánk egyet, de a Jetty már számos megvalósítási lehetőséget kínál a leggyakoribb használati esetekhez. Vessünk egy pillantást kettőjükre.

4.1. WebAppContext

A WebAppContext osztály lehetővé teszi, hogy a kérelemkezelést egy meglévő webalkalmazásra delegálhassa. Az alkalmazás megadható akár WAR fájl elérési útként, akár webapp mappa elérési útként.

Ha egy alkalmazást a „myApp” kontextusban szeretnénk kitenni, akkor ezt írjuk:

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

4.2. HandlerCollection

Összetett alkalmazások esetén akár több kezelőt is megadhatunk a HandlerCollection osztály.

Tegyük fel, hogy két egyedi kezelőt implementáltunk. Az első csak naplózási műveleteket végez, míg a második tényleges választ hoz létre és küld vissza a felhasználónak. Minden beérkező kérést mindkettőjükkel ebben a sorrendben szeretnénk feldolgozni.

Így teheti meg:

Handler kezelők = new HandlerCollection (); handlers.addHandler (loggingRequestHandler); handlers.addHandler (customRequestHandler); server.setHandler (kezelők);

5. Csatlakozók

A következő dolog, amit meg akarunk tenni, hogy konfiguráljuk, mely címekre és portokra hallgatja a szerver, és tegyünk hozzá tétlen időkorlátot.

A szerver osztály két kényelmi konstruktort deklarál, amelyek felhasználhatók egy adott port vagy cím megkötésére.

Bár ez apró alkalmazások esetén rendben is lehet, nem lesz elég, ha több csatlakozást szeretnénk megnyitni különböző foglalatokon.

Ebben a helyzetben a Jetty biztosítja a Csatlakozó interfész és pontosabban a ServerConnector osztály, amely lehetővé teszi a különböző kapcsolati konfigurációs paraméterek meghatározását:

ServerConnector csatlakozó = new ServerConnector (szerver); connector.setPort (80); connector.setHost ("169.20.45.12"); connector.setIdleTimeout (30000); server.addConnector (csatlakozó);

Ezzel a konfigurációval a szerver 169.20.45.12:80 napon fog hallgatni. Minden ezen a címen létrehozott kapcsolat időtúllépése 30 másodperc lesz.

Ha más aljzatokat kell konfigurálnunk, további csatlakozókat is felvehetünk.

6. Következtetés

Ebben a gyors bemutatóban arra összpontosítottunk, hogy miként lehet a beágyazott szervert beállítani a Jetty alkalmazással. Azt is láttuk, hogyan lehet további konfigurációkat végrehajtani a Kezelők és Csatlakozók.

Mint mindig, az itt használt összes kód megtalálható a GitHubon.