Webalkalmazások telepítése a mólón

1. Áttekintés

Ebben a cikkben gyors áttekintést készítünk a Jetty webkiszolgálóról, majd a WAR fájl telepítésének különféle megközelítéseit ismertetjük.

A móló egy nyílt forráskódú Java HTTP webkiszolgáló és egy szervlet-konténer. A mólót gyakrabban használják a gépi-gépi kommunikációban a Java ökoszisztémában.

2. Projekt beállítása

A móló legfrissebb verziója mindig erre a linkre kattintva tölthető le. A parancssorból egy nagyon egyszerű Java webalkalmazást hozunk létre a Maven segítségével, amelyet a példáinkra használunk.

Ebben a cikkben a Jetty 9.x-et használjuk, a pillanatnyi legújabb verziót.

Menjünk át a konzolunkra, keressük meg a kívánt helyet és futtassuk a következő parancsot:

mvn archetípus: generál -DgroupId = com.baeldung -DartifactId = móló-app -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = hamis

Ez a parancs létrehoz egy teljes Java webalkalmazást egy új belsejében móló-app mappa a jelenlegi helyünkön. Ez csak egy egyike a Java alkalmazás létrehozásának számos módjáról a Maven alkalmazással, és ez megfelel célunknak.

Mivel WAR fájlokkal fogunk foglalkozni, keressük meg a projekt gyökerét és építsük fel:

cd móló-app

Épület Maven-nel:

mvn csomag

Azután móló-app.war helyszínen jön létre móló-app / target / móló-app.war.

3. Móló felépítése

Kontextus elérési útja. A szerver címéhez viszonyított helyre utal, amely a webalkalmazás nevét jelenti.

Például, ha webes alkalmazásunk a $ JETTY_HOME \ webapps \ myapp könyvtárba, azt az URL segítségével érheti el // localhost / myapp, és összefüggési útvonala az lesz / myapp.

HÁBORÚ. A fájl kiterjesztése, amely egy webalkalmazás-könyvtár hierarchiát ZIP formátumban csomagol, és rövid a Web Archive kifejezéshez. A Java webalkalmazásokat általában WAR fájlokként csomagolják a telepítéshez. A WAR fájlok létrehozhatók a parancssorban, vagy olyan IDE segítségével, mint az Eclipse.

4. Telepítés a WAR másolásával

A webalkalmazás Jetty szerverre történő telepítésének legegyszerűbb módja valószínűleg a WAR fájl másolása a $ JETTY_HOME / webapps Könyvtár.

Másolás után elindíthatjuk a kiszolgálót a navigációval a $ JETTY_HOME és futtatja a parancsot:

java -jar start.jar

A móló átvizsgálja $ JETTY_HOME / webapps indításkor a webalkalmazások telepítéséhez. Új alkalmazásunkat itt telepítjük: / móló-app kontextus.

Amikor betöltjük az URL-t // localhost: 8080 / jetty-app a böngészőből látnunk kell, hogy az alkalmazásunk fut Helló Világ! a képernyőre nyomtatva.

5. Telepítés a helyi fájl használatával

A móló webszervere lehetőséget kínál számunkra telepítsen webarchívumot a fájlrendszer bárhol található, létrehozva egy kontextus fájlt hozzá.

Így még akkor is, ha a WAR fájlunk egy asztalon található, vagy úgy döntöttünk, hogy bent tartjuk móló-alkalmazás / cél ahová Maven elhelyezi a csomagot, ott csak létrehozhatjuk a kontextusfájlját $ JETTY_HOME / webapps.

Hadd vonjuk vissza a móló-app.war csak úgy telepítettük, hogy töröltük onnan webalkalmazások. Ezután létrehozunk móló-app.xml a következő kóddal, és helyezze be webalkalmazások:

   / móló abszolút / út / a / móló-app.war 

Ennek a kontextusfájlnak meg kell egyeznie a WAR nevünkkel, XML fájlkiterjesztéssel. Figyelje meg, hogy beállítottuk a contextPath tulajdonít neki /móló. Ez azt jelenti, hogy webes alkalmazásunkat az URL-ről fogjuk elérni // localhost: 8080 / móló.

Ez a kontextus elérési útjának testreszabási képessége az egyik nagy előnye a kontextusfájl-megközelítésnek, amikor WAR-ot telepítenek a mólóban, mivel egyes alkalmazásnevek nem biztos, hogy alkalmasak erre a célra.

6. Telepítés a móló Maven beépülő moduljával

6.1. Alapértelmezett telepítés

A Maven móló plugin segít nekünk a gyors tesztelésben és az iterációban a Java webalkalmazások építése során. Az alkalmazások telepítéséhez és futtatásához csak hozzá kell adnunk a bővítményt pom.xml:

 org.eclipse.móló móló-maven-plugin 9.3.11.v20160721 

A legújabb verzió a Maven link követésével található.

Biztosítanunk kell, hogy a kikötőn futó mólónk 8080 a következő lépés végrehajtása előtt leáll.

Az alkalmazás telepítéséhez a plugin hozzáadása után a gyökérhöz navigálunk pom.xml található, és futtassa a következő parancsot:

mvn móló: futás

Ez a parancs új mólópéldányt hoz létre, és a plugin telepíti az alkalmazást. Betöltéssel férhetünk hozzá // localhost: 8080.

A móló Maven plugin folyamatosan vizsgálja a webprojektet az esetleges változásokra, és folyamatosan újratelepíti.

6.2. A ContextPath

Az előző alszakaszból az alkalmazást a / kontextus. Ha azonban egy adott kontextusúton szeretnénk telepíteni, mint pl /móló mint korábban, másképp kell beállítanunk a bővítményt.

A plugin deklarációnkat a következő XML-re változtatjuk:

 org.eclipse.jetty móló-maven-plugin 9.3.11.v20160721 / móló 

Figyelje meg, hogyan adtunk hozzá egy konfigurációs blokkot a telepítés további testreszabásához. Számos konfigurációs lehetőség létezik a blokk belsejében, attól függően, hogy mit akar.

Ezen változtatások után újra futtathatjuk a bővítményt, mint korábban, és ezen keresztül érhetjük el alkalmazásunkat // localhost: 8080 / móló.

6.3. Port megváltoztatása

Az egyik eset a használatban lévő port kivétel. Lehet, hogy van egy mólónk, amely a kikötőben működik 8080 gyártáshoz, de még mindig fejlesztési fázisban vagyunk, és szeretnénk profitálni a Maven plugin segítségével történő telepítéssel járó egyszerű iterációból.

Ilyen esetekben egy másik porton kell futtatnunk a tesztkiszolgálónkat. Változtassuk a plugin konfigurációját a következő XML-re:

  / 8888 móló 

Amikor újra futtatjuk a Maven bővítményünket, onnan fogunk hozzáférni az alkalmazásunkhoz // localhost: 8888 / móló.

Érdemes megjegyezni, hogy a móló Maven beépülő moduljával nincs szükségünk egy móló telepítésére és futtatására. Inkább létrehozza saját mólópéldányát.

7. Telepítés a Jetty Runner-rel

Csakúgy, mint a maven Maven beépülő modul, a móló-futó is gyors és egyszerű módot kínál webalkalmazásunk telepítésére és futtatására. A móló-futó esetén szintén nem kell külön telepet telepítenünk és futtatnunk.

7.1. Jetty Runner beállítása

Ahhoz, hogy a móló-futót webes alkalmazásaink gyors telepítésében és futtatásában használhassuk, a legfrissebb verziót letölthetjük a Maven hivatkozás követésével.

A móló-futóval csak a letöltött edényt kell bárhová tennünk, ahová szeretnénk, és készen állunk a webarchívumunk fájlrendszerének elérési útjára.

Konfigurációs paramétereket adhatunk át a parancssorból, valamint számos alkalmazást telepíthetünk különböző kontextusokban, és csak egy paranccsal köthetünk különböző portokhoz.

A móló-futó edényemet ugyanabba a hierarchiába helyeztem, mint a móló-app Könyvtár. Ez a webalkalmazásunkat tartalmazó könyvtár.

7.2. Alapvető telepítés

Telepítsük a háborúnkat a móló-futó segítségével:

java -jar móló-futó-9.4.0.M1.jar móló-app / target / móló-app.war

Ez a parancs, csakúgy, mint a Maven plugin esetében, létrehoz egy mólópéldányt, és telepíti a hozzá tartozó WAR-ot. A WAR útvonal lehet abszolút vagy relatív útvonal.

Ezzel az alkalmazást betölthetjük // localhost: 8080.

7.3. Telepítés kontextusúttal

Alatt telepíteni /móló összefüggésben, mint korábban:

java -jar móló-futó-9.4.0.M1.jar --path / móló móló-app / target / móló-app.war

A következő címen érhető el: // localhost: 8080 / móló.

7.4. Telepítés az adott porton

Telepítés egy adott portszámra:

java -jar móló-futó-9.4.0.M1.jar --port 9090 móló-app / target / móló-app.war

A következő címen érhető el: // localhost: 9090.

7.5. Több WAR telepítése

Több WAR telepítéséhez ugyanazzal a paranccsal a -pálya érv, hogy mindegyik egyedivé váljon:

java -jar móló-futó --path / one one.war --path / two two.war

Ezután hozzáférnénk egy.háború keresztül // localhost: 8080 / one és kettő.háború keresztül // localhost: 8080 / kettő.

8. Telepítse a Cargo Maven beépülő modullal

A Cargo egy sokoldalú könyvtár, amely lehetővé teszi számunkra a különféle típusú alkalmazás-konténerek szokásos kezelését.

8.1. Rakomány telepítés beállítása

Ebben a részben megvizsgáljuk, hogyan kell használja a Cargo Maven plugint egy WAR telepítésére a mólóra, ebben az esetben WAR-t telepítünk egy Jetty 9.x példányra.

Ahhoz, hogy biztosan megragadhassuk az egész folyamatot, a semmiből indulva új Java webalkalmazást hozunk létre a parancssorból:

mvn archetípus: generál -DgroupId = com.baeldung -DartifactId = cargo-deploy -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = hamis

Ez egy teljes Java webalkalmazást hoz létre a rakomány-bevetés Könyvtár. Ha ezt az alkalmazást olyan állapotban építjük, telepítjük és töltjük be, akkor az kinyomtatja Helló Világ! a böngészőben.

Mivel webes alkalmazásunk nem tartalmaz szervleteket, a mi web.xml fájl nagyon egyszerű lesz. Tehát navigáljon a WEB-INF mappát, és hozzon létre egy web.xml ha még nem lett automatikusan létrehozva a következő tartalommal:

  rakomány-bevetési index.jsp 

Ahhoz, hogy a Maven fel tudja ismerni a cargo parancsait anélkül, hogy beírná a teljesen minősített nevet, hozzá kell adnunk a cargo Maven plugint a Maven plugin csoportjához. settings.xml.

A gyökér közvetlen gyermekeként elem, adja hozzá ezt:

 org.codehaus.cargo 

8.2. Helyi telepítés

Ebben az alfejezetben szerkesztjük a mi pom.xml hogy megfeleljen új telepítési követelményeinknek.

Adja hozzá a bővítményt az alábbiak szerint:

   org.codehaus.cargo cargo-maven2-plugin 1.5.0 jetty9x telepítve Abszolút elérési út beillesztése a móló 9 telepítésébe meglévő beillesztése 

Figyeljük meg, hogy mi a csomagolást kifejezetten WAR-ként határozza meg, enélkül az összeállításunk kudarcot vall. A bővítmények részben hozzáadjuk a cargo maven2 beépülő modult.

A legújabb verzió az írás idején 1.5.0. A legfrissebb verzió azonban mindig itt található. Ezenkívül hozzáadunk egy konfigurációs részt, ahol elmondjuk Mavennek, hogy Jetty tárolót és egy meglévő Jetty telepítést használunk.

A tároló típusának beállításával telepítve, elmondjuk Mavennek, hogy van egy Jetty példány telepítve a gépre, és megadjuk a telepítés abszolút URL-jét.

A konfigurációs típus beállításával létező, elmondjuk Mavennek, hogy van egy meglévő beállításunk, amelyet használunk, és nincs szükség további konfigurálásra.

Az alternatíva az lenne, ha utasítanánk a rakományt egy URL megadásával, hogy töltse le és állítsa be a Jetty verzióját. A hangsúly azonban az WAR telepítés.

Érdemes megjegyezni, hogy akár a Maven 2.x, akár a Maven 3.x verziót használjuk, a cargo maven2 plugin mindkettőhöz használható.

Mostantól telepíthetjük az alkalmazásunkat az alábbiak végrehajtásával:

mvn install

és futtatásával telepítse:

mvn cargo: bevet

Ha minden jól megy a Maven és Jetty konzolban, akkor képesnek kell lenniünk arra, hogy betöltéssel futtassuk webalkalmazásunkat // localhost: 8080 / cargo-deploy.

Ha ellenőrizzük a $ JETTY_HOME / webapps mappában találunk egy telepítési leíró fájlt, vagy amit korábban úgy hívtunk, hogy a helyi fájl neve cargo-deploy.xml rakomány hozta létre.

8.3. Távoli telepítés

Alapértelmezés szerint a Jetty nem rendelkezik távoli telepítési lehetőségekkel. Annak érdekében, hogy ilyen támogatást nyújtson a mólóhoz, Cargo a Móló távvezérlő Webalkalmazás.

Ez azt jelenti, hogy le kell töltenünk egy internetes WAR alkalmazást, amelyet a Cargo fejlesztői készítettek előre, és telepítenünk kell ezt a WAR-ot a célmóló konténerbe.

Minden alkalommal, amikor a cargo Maven beépülő modul használatával szeretnénk telepíteni ezt a távoli kiszolgálót, HTTP-kérést küld a távoli kiszolgálón lévő telepítő alkalmazáshoz a WAR-tal a telepítéshez.

Ez a távoli telepítő itt található. Irány a eszközök részt, és töltse le a rakomány-móló-7-és-tovább-telepítő HÁBORÚ.

Biztonsági szempontok

Fel kell állítanunk a biztonsági terület mólón, mielőtt ez működhetne, hitelesítési célokra. Hozzon létre egy nevű fájlt birodalom.tulajdonságok ban ben $ JETTY_HOME / stb a távoli mólókiszolgáló könyvtárát. A fájl tartalma:

admin: jelszó, kezelő

A admin az a felhasználói név, amellyel az ügyfél hozzáférhet a biztonságos alkalmazásokhoz, Jelszó a jelszó és menedzser az a szerep, amellyel az ügyfeleknek rendelkezniük kell a hozzáférés megadása előtt.

A telepítési alkalmazásban deklarálnunk kell a biztonsági követelményeinket is. Kicsomagoljuk a móló letöltési oldalról letöltött WAR-t, néhány változtatást végrehajtunk és visszacsomagolunk egy WAR-ba.

Kicsomagolás után irány át WEB-INF / web.xml és törölje az XML kód megjegyzését az Megjegyzés a biztonság aktiválása érdekében megjegyzés. Vagy helyezze el a következő kódot:

  Jetty Remote Deployer / * menedzser BASIC Test Realm 

A telepítő telepítése

Most visszacsomagolhatjuk az alkalmazást egy WAR-ba, és átmásolhatjuk a távoli szerver tetszőleges helyére. Ezután telepítjük a mólóra.

A telepítés során a legjobb a telepítési leíró fájl hogy létrehozhassunk egy biztonságkezelő és adja át neki a loginService. Minden védett alkalmazásnak rendelkeznie kell bejelentkezési szolgáltatással, különben a móló nem fogja telepíteni őket.

Most hozzunk létre egy kontextusfájlt $ JETTY_HOME / webapps a távoli mólópéldányról ne feledje a kontextusfájl elnevezésének szabályait. Legyen ugyanaz a név, mint a WAR:

   / deployer Absolute / path / to / cargo-jetty-deployer.war Test Realm /etc/realm.properties 

Indítsa el a távoli mólókiszolgálót, és ha minden jól megy, képesnek kell lenniünk betöltésre // localhost: 8080 / cargo-jetty-deployer. Ekkor látnunk kell valami ilyesmit:

HTTP HIBA 400 Probléma a hozzáféréssel / cargo-jetty-deployer /. Ok: Parancs / ismeretlen

A WAR telepítése a távoli mólóra

Távoli telepítéshez csak a konfigurációs szakaszunkat kell megváltoztatnunk pom.xml. A távoli telepítés azt jelenti, hogy nincs telepítve a Jetty, de hitelesített hozzáféréssel rendelkezünk a távoli kiszolgálón futó telepítő alkalmazáshoz.

Tehát változtassunk a pom.xml hogy a konfigurációs szakasz így nézzen ki:

  jetty9x távoli futásidejű 127.0.0.1 8080 admin jelszó 

Ezúttal a tárolótípust megváltoztatjuk telepítve nak nek távoli és a konfigurációs típus létező nak nek futási idő. Végül hozzáadjuk a konfigurációhoz a gazdagépnevet, a portot és a hitelesítési tulajdonságokat.

tisztítsa meg a projektet:

mvn tiszta

telepítse:

mvn install

végül telepítse:

mvn cargo: bevet

Ez az.

9. Telepítés az Eclipse-ből

Az Eclipse lehetővé teszi számunkra a szerverek beágyazását annak érdekében, hogy a webes projekt központi telepítését hozzáadjuk a normál munkafolyamathoz anélkül, hogy el kellene térnünk az IDE-től.

9.1. Móló beágyazása az Eclipse-be

Kiválasztással beágyazhatunk egy móló-telepítést a napfogyatkozásba ablak elemet a tálcáról, majd preferenciák a legördülő menüből.

A megjelenő ablak bal oldali paneljén találunk egy preferencia elemeket tartalmazó fa rácsot. Ezután navigálhatunk az eclipse -> szerverekre, vagy csak beírhatunk szervereket a keresősávba.

Ezután kiválasztjuk a Jetty könyvtárat, ha még nem nyílt meg számunkra, és kiválasztjuk a Jetty verziót, amelyet letöltöttünk.

A panel jobb oldalán megjelenik egy konfigurációs oldal, ahol az engedélyezési lehetőséget választjuk a Jetty verzió aktiválásához, és tallózzunk a telepítési mappába.

A képernyőképek alapján a 7.x mólót felváltja a móló általunk konfigurált verziója.

Változásokat hajtunk végre, és amikor legközelebb megnyitjuk a kiszolgálók nézetét az eclipse ablakaiból -> show view almenü, az újonnan konfigurált szerver jelen lesz, és elindíthatjuk, leállíthatjuk és telepíthetjük rá az alkalmazásokat.

9.2. Webalkalmazás telepítése a beágyazott mólóban

Egy webalkalmazás telepítéséhez a beágyazott Jetty példányhoz léteznie kell a munkaterületünkön.

Nyissa meg a szerverek nézet ablakból -> nézet megjelenítése és szerverek keresése. Ha nyitva van, akkor jobb gombbal kattinthatunk a konfigurált szerverre, és kiválaszthatjuk telepítés hozzáadása a megjelenő helyi menüből.

Tól Új telepítés megjelenő párbeszédpanelen nyissa meg a projekt legördülő menüből válassza ki a webprojektet.

Van egy Telepítés típusa szakasz alatt Projekt combo box, amikor kiválasztjuk Felrobbant archívum (fejlesztési mód), az alkalmazásban végrehajtott változásaink élőben szinkronizálódnak anélkül, hogy újratelepítenünk kellene őket, ez a legjobb megoldás a fejlesztés során, mivel nagyon hatékony.

Kiválasztása Csomagolt archívum (gyártási mód) megköveteli, hogy minden alkalommal átcsoportosítsuk, amikor változtatásokat hajtunk végre, és látjuk őket a böngészőben. Ez a legjobb csak a gyártáshoz, de mégis, az Eclipse ugyanolyan egyszerűvé teszi.

9.3. Webalkalmazás telepítése külső helyen

A hibakeresés megkönnyítése érdekében általában a WAR telepítését választjuk az Eclipse-n keresztül. Eljöhet az idő, amikor azt szeretnénk, hogy az Eclipse beágyazott szerverein kívül más helyre telepítsük.

A leggyakoribb eset, amikor a termelési kiszolgálónk online, és szeretnénk frissíteni a webalkalmazást.

Megkerülhetjük ezt az eljárást úgy, hogy telepítjük gyártási módban, és megjegyezzük a Telepítse a Helyet ban,-ben Új telepítés párbeszédpanelt, és onnan választja a WAR-ot.

A telepítés során a beágyazott kiszolgáló kiválasztása helyett a opció a szerverek nézd meg a beágyazott szerverek listája mellett. Navigálunk a $ JETTY_HOME/webalkalmazások egy külső Jetty telepítés könyvtárát.

10. Telepítés az IntelliJ IDEA-ból

Egy webalkalmazás telepítéséhez a mólóra léteznie kell, és azt már le kell tölteni és telepíteni kell.

10.1. Helyi konfiguráció

Nyissa meg a Fuss menüt, és kattintson a gombra Konfigurációk szerkesztése opciók.

A bal oldali panelen keresse meg a következőt: Mólószerver, ha nincs ott kattintson a + jelre a menüben, keressen rá Móló és válassza ki Helyi. Ban,-ben név mező fel 9. móló.

Kattints a Beállítás… gombot és be Móló otthon mezőben keresse meg a telepítés otthoni helyét, és válassza ki azt.

Opcionálisan állítsa be a üzembe helyezés oldal legyen // localhost: 8080 / és HTTP port: 8080, szükség szerint változtassa meg a portot.

Menj a Telepítés fülre kattintva kattintson a + szimbólumra, válassza ki a szerverhez hozzáadni kívánt tárgyat, majd kattintson az OK gombra

10.2. Távoli konfigurálás

Kövesse ugyanazokat az utasításokat, mint a helyi Jetty konfigurációknál, de a kiszolgáló lapon meg kell adnia a telepítés távoli helyét.

11. Következtetés

Ebben a cikkben részletesen bemutattuk a WAR fájl Jetty webszerveren történő telepítésének különféle módjait.