Nasadzovanie webových aplikácií na móle

1. Prehľad

V tomto článku urobíme rýchly prehľad o webovom serveri Jetty a potom priblížime rôzne prístupy k nasadeniu súboru WAR.

Jetty je otvorený zdrojový webový server HTTP HTTP a kontajner servletu. Mólo sa častejšie používa pri komunikácii medzi strojmi v ekosystéme Java.

2. Nastavenie projektu

Najnovšiu verziu Jetty si môžete kedykoľvek stiahnuť kliknutím na tento odkaz. Z príkazového riadku s Mavenom vytvoríme veľmi základnú webovú aplikáciu Java, ktorú použijeme pre svoje príklady.

V tomto článku používame najnovšiu verziu Jetty 9.x, ktorá je momentálne k dispozícii.

Prejdime k našej konzole, prejdite na miesto, ktoré sme si vybrali, a spustime nasledujúci príkaz:

archív typu mvn: generate -DgroupId = com.baeldung -DartifactId = mólo-aplikácia -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

Tento príkaz vytvorí kompletnú webovú aplikáciu Java v novej mólo-app priečinok v našom aktuálnom umiestnení. Je to len jeden z mnohých spôsobov vytvorenia aplikácie Java pomocou Mavenu a vyhovuje nášmu účelu.

Pretože sa budeme zaoberať súbormi WAR, prejdime na koreň projektu a vytvorme ho:

CD Jetty-App

Budova s ​​Maven:

balíček mvn

Potom mólo-app.war sa vytvorí na mieste Jetty-App / Target / Jetty-App.war.

3. Štruktúra móla

Kontextová cesta. Odkazuje na umiestnenie, ktoré je relatívne k adrese servera a predstavuje názov webovej aplikácie.

Napríklad ak je naša webová aplikácia umiestnená pod $ JETTY_HOME \ webapps \ myapp adresár, bude k nej prístupná prostredníctvom adresy URL // localhost / myappa jeho kontextová cesta bude / myapp.

VOJNA. Je príponou súboru, ktorý balí hierarchiu adresárov webových aplikácií do formátu ZIP a je skratkou pre Web Archive. Webové aplikácie Java sú zvyčajne nasadené ako súbory WAR na nasadenie. Súbory WAR je možné vytvárať na príkazovom riadku alebo pomocou IDE ako Eclipse.

4. Nasadzovanie kopírovaním VOJNY

Najjednoduchší spôsob nasadenia webovej aplikácie na server Jetty je pravdepodobne skopírovaním súboru WAR do $ JETTY_HOME / webové aplikácie adresár.

Po skopírovaní môžeme server spustiť prechodom na $ JETTY_HOME a spustenie príkazu:

java -jar start.jar

Mólo bude skenovať svoje $ JETTY_HOME / webové aplikácie adresár pri spustení, aby sa webové aplikácie mohli nasadiť. Naša nová aplikácia bude nasadená na / mólo-aplikácia kontext.

Keď načítame adresu URL // localhost: 8080 / jetty-app z prehliadača by sme mali vidieť spustenú našu aplikáciu s Ahoj svet! vytlačené na obrazovku.

5. Nasadenie pomocou kontextového súboru

Jetty web server nám ponúka cestu k nasadiť webový archív umiestnené kdekoľvek v systéme súborov a vytvoríme preň kontextový súbor.

Týmto spôsobom, aj keď je náš súbor WAR umiestnený na pracovnej ploche, alebo sme sa rozhodli ponechať ho mólo-aplikácia / cieľ kde Maven umiestni balík, môžeme jednoducho vytvoriť jeho kontextový súbor vo vnútri $ JETTY_HOME / webové aplikácie.

Vypustíme mólo-app.war práve sme nasadili odstránením z webové aplikácie. Potom tvoríme mólo-app.xml s nasledujúcim kódom a vložte ho dovnútra webové aplikácie:

   / mólo absolútne / cesta / do / mólo-app.war 

Tento kontextový súbor musí mať rovnaký názov ako naša VOJNA, s príponou súboru XML. Všimnite si, že sme nastavili contextPath atribút / mólo. To znamená, že k našej webovej aplikácii budeme mať prístup z adresy URL // localhost: 8080 / mólo.

Táto schopnosť prispôsobiť cestu kontextu je jednou z veľkých výhod prístupu kontextových súborov k nasadeniu WARs na Jetty, pretože niektoré názvy aplikácií nemusia byť pre tento účel vhodné.

6. Nasadzovanie pomocou doplnku Jetty Maven

6.1. Predvolené nasadenie

Doplnok jetty Maven nám pomáha pri rýchlom testovaní a opakovaní pri vytváraní webových aplikácií Java. Aby sme s ním mohli nasadiť a spustiť aplikácie, stačí doň pridať plugin pom.xml:

 org.eclipse.jetty jetty-maven-plugin 9.3.11.v20160721 

Najnovšiu verziu nájdete po kliknutí na tento odkaz Maven.

Musíme sa uistiť, že naša inštancia Jetty beží na porte 8080 je zastavený skôr, ako vykonáme ďalší krok.

Ak chcete nasadiť našu aplikáciu po pridaní doplnku, navigujeme do koreňového adresára pom.xml sa nachádza a spustite nasledujúci príkaz:

mvn mólo: spustiť

Tento príkaz vytvorí novú inštanciu móla a doplnok do nej nasadí aplikáciu. Dostaneme sa k nej načítaním // localhost: 8080.

Doplnkový modul Maven Maven neustále prehľadáva webový projekt, či neobsahuje nejaké zmeny, a neustále ho znova umiestňuje.

6.2. Mení sa ContextPath

Z predchádzajúcej podsekcie bola aplikácia nasadená pod / kontext. Ak by sme však chceli nasadiť pod danou kontextovou cestou ako napr / mólo rovnako ako predtým budeme musieť nakonfigurovať doplnok inak.

Naše vyhlásenie o doplnku zmeníme na nasledujúci XML:

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

Všimnite si, ako sme pridali konfiguračný blok, aby sme ďalej prispôsobili naše nasadenie. Existuje niekoľko možností konfigurácie, ktoré sa dajú umiestniť do tohto bloku v závislosti od toho, čo človek chce.

Po týchto zmenách môžeme doplnok znova spustiť ako predtým a pristupovať k našej aplikácii prostredníctvom // localhost: 8080 / mólo.

6.3. Zmena portu

Scenár, s ktorým sa možno stretnúť, je výnimka pri používaní portu. Môže to byť tak, že v prístave beží inštancia móla 8080 pre produkciu, ale stále sme vo fáze vývoja a chceme ťažiť z ľahkej iterácie, ktorá prichádza s nasadením pomocou pluginu Maven.

V takýchto prípadoch musíme testovací server spustiť na inom porte. Zmeňme konfiguráciu doplnku na nasledujúci XML:

  / mólo 8888 

Keď znova spustíme náš plugin Maven, budeme mať prístup k našej aplikácii z // localhost: 8888 / mólo.

Stojí za zmienku, že s doplnkom jetty Maven nemusíme mať nainštalovanú a spustenú inštanciu móla. Namiesto toho si vytvára vlastnú inštanciu móla.

7. Nasadzovanie pomocou Jetty Runner

Rovnako ako doplnok jetty Maven, aj jetty-runner ponúka rýchly a ľahký spôsob nasadenia a spustenia našej webovej aplikácie. V prípade móla-runner tiež nemusíme inštalovať a spúšťať samostatnú inštanciu mólového servera.

7.1. Nastavenie móla

Ak chcete použiť mólo-runner na rýchle nasadenie a spustenie našich webových aplikácií, môžeme si stiahnuť najnovšiu verziu kliknutím na tento odkaz Maven.

Pomocou móla-runner musíme iba umiestniť stiahnutú nádobu kamkoľvek chceme a byť pripravení s cestou súborového systému k našim webovým archívom.

Môžeme odovzdať konfiguračné parametre z príkazového riadku, ako aj nasadiť množstvo aplikácií v rôznych kontextoch a viazaných na rôzne porty iba pomocou jedného príkazu.

Položil som nádobu s mólom na runner do rovnakej hierarchie ako mólo-app adresár. Toto je adresár, ktorý obsahuje našu webovú aplikáciu.

7.2. Základné nasadenie

Poďme nasadiť našu VOJKU pomocou móla:

java -jar mólo-bežec-9.4.0.M1.jar mólo-aplikácia / cieľ / mólo-app.war

Tento príkaz, rovnako ako prípad doplnku Maven, vytvorí inštanciu móla a nasadí do nej poskytnutú WAR. Cesta WAR môže byť absolútna alebo relatívna cesta.

Túto aplikáciu môžeme načítať pomocou // localhost: 8080.

7.3. Nasadiť pomocou kontextovej cesty

Nasadiť pod / mólo kontext ako predtým:

java -jar mólo-bežec-9.4.0.M1.jar - cesta / mólo mólo-aplikácia / cieľ / mólo-app.war

Prístupné cez // localhost: 8080 / mólo.

7.4. Nasadenie v danom prístave

Nasadenie na danom čísle portu:

java -jar mólo-runner-9.4.0.M1.jar --port 9090 mólo-aplikácia / cieľ / mólo-app.war

Prístupné cez // localhost: 9090.

7.5. Nasadzujte viac VÁLIEK

Na nasadenie viacerých VÁLOK s rovnakým príkazom používame –Cesta každý jedinečný argument:

java -jar mólo-bežec - cesta / jedna jedna. vojna - cesta / dve dve. vojna

Potom by sme mali prístup jedna.vojna cez // localhost: 8080 / jeden a dva.vojna cez // localhost: 8080 / dva.

8. Nasadenie pomocou doplnku Cargo Maven

Cargo je všestranná knižnica, ktorá nám umožňuje štandardným spôsobom manipulovať s rôznymi typmi aplikačných kontajnerov.

8.1. Nastavenie nasadenia nákladu

V tejto časti sa pozrieme na to, ako na to použite doplnok Maven spoločnosti Cargo na nasadenie VOJNY na mólo, v takom prípade nasadíme VOJNU na inštanciu Jetty 9.x.

Aby sme celý proces pevne uchopili, začneme úplne od začiatku vytvorením novej webovej aplikácie Java z príkazového riadku:

mvn archetype: generate -DgroupId = com.baeldung -DartifactId = cargo-deploy -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

Týmto sa vytvorí kompletná webová aplikácia Java v náklad-nasadiť adresár. Ak túto aplikáciu zostavíme, nasadíme a načítame tak, ako je, bude sa tlačiť Ahoj Svet! v prehliadači.

Pretože naša webová aplikácia neobsahuje žiadne servlety, naša web.xml súbor bude veľmi základný. Prejdite teda na WEB-INF priečinok nášho novovytvoreného projektu a vytvorte a web.xml ak to ešte nebolo automaticky vytvorené s nasledujúcim obsahom:

  cargo-deploy index.jsp 

Aby sme umožnili Mavenu rozpoznávať príkazy nákladu bez zadania úplného názvu, musíme pridať doplnok cargo Maven do skupiny doplnkov v Mavene nastavenia.xml.

Ako bezprostredné dieťa koreňa prvok, pridajte toto:

 org.codehaus.cargo 

8.2. Lokálne nasadenie

V tejto podsekcii upravíme svoje pom.xml aby vyhovovali našim novým požiadavkám na nasadenie.

Pridajte doplnok nasledovne:

   org.codehaus.cargo cargo-maven2-plugin 1.5.0 jetty9x nainštalovaný Vložte absolútnu cestu k inštalácii móla 9 existujúca Vložte absolútnu cestu k inštalácii mólu 9 

Všimnite si, že my výslovne definujte obal ako VOJNU, bez toho naše zostavenie zlyhá. V sekcii doplnkov potom pridáme doplnok cargo maven2.

Posledná verzia v čase písania tohto článku je 1.5.0. Najnovšiu verziu však vždy nájdete tu. Ďalej pridáme konfiguračnú časť, kde povieme Mavenovi, že používame kontajner Jetty a tiež existujúcu inštaláciu Jetty.

Nastavením typu kontajnera na nainštalovaný, povieme Mavenovi, že máme v stroji nainštalovanú inštanciu Jetty a tejto inštalácii poskytneme absolútnu adresu URL.

Nastavením typu konfigurácie na existujúce, povieme Mavenovi, že máme existujúce nastavenie, ktoré používame, a nie je potrebná žiadna ďalšia konfigurácia.

Alternatívou by bolo povedať nákladu, aby stiahol a nastavil verziu móla uvedenú pomocou adresy URL. Naše zameranie je však na WAR nasadenie.

Stojí za zmienku, že či už používame Maven 2.x alebo Maven 3.x, plugin maven2 pre náklad funguje pre oba typy.

Teraz môžeme našu aplikáciu nainštalovať vykonaním:

inštalácia mvn

a nasadiť ho spustením:

náklad MVV: nasadiť

Ak všetko v konzole Maven a Jetty dopadne dobre, mali by sme byť schopní spustiť našu webovú aplikáciu načítaním // localhost: 8080 / cargo-deploy.

Ak skontrolujeme $ JETTY_HOME / webové aplikácie priečinok, nájdeme súbor deskriptora nasadenia alebo to, čo sme predtým nazývali kontextový súbor s názvom cargo-deploy.xml vytvorený nákladom.

8.3. Diaľkové nasadenie

V predvolenom nastavení Jetty neprichádza s možnosťami vzdialeného nasadenia. Na doplnenie takejto podpory pre Jetty používa Cargo Mólo na diaľku Webová aplikácia.

To znamená, že musíme stiahnuť webovú aplikáciu WAR vopred vytvorenú vývojármi Cargo, nasadiť túto WAR do cieľového kontajnera na mólo.

Zakaždým, keď chceme nasadiť na tento vzdialený server pomocou doplnku cargo Maven, odošle požiadavku HTTP do aplikácie na nasadenie na vzdialenom serveri s našou WAR na nasadenie.

Toto vzdialené nasadenie nájdete tu. Zamierte do nástroje a stiahnite si nákladný mólo-7 a ďalej-rozmiestňovač VOJNA.

Bezpečnostné hľadiská

Musíme zriadiť a bezpečnostná oblasť na móle, aby to mohlo fungovať, kvôli overeniu totožnosti. Vytvorte súbor s názvom realm.properties v $ JETTY_HOME / atď adresár vzdialeného mólového servera. Obsah súboru je:

admin: heslo, manažér

The admin je používateľské meno, pomocou ktorého má klient prístup k zabezpečeným aplikáciám, heslo je heslo a manažér je rola, ktorú musia mať klienti pred udelením prístupu.

Musíme tiež deklarovať naše bezpečnostné požiadavky v aplikácii nasadenia. Rozbalíme VOJNU, ktorú sme stiahli zo stránky na stiahnutie móla, urobíme nejaké zmeny a zabalíme ju späť do VOJNY.

Po vybalení smerujte na WEB-INF / web.xml a odkomentujte kód XML pomocou Odošlite komentár z dôvodu aktivácie zabezpečenia komentovať. Alebo sem vložte nasledujúci kód:

  Jetty Remote Deployer / * manager BASIC Test Realm 

Nasadenie rozmiestňovača

Teraz môžeme zabaliť aplikáciu späť do WAR a skopírovať ju na ľubovoľné miesto na vzdialenom serveri. Potom ho nasadíme na mólo.

Počas nasadenia je najlepšie použiť a súbor deskriptora nasadenia aby sme mohli vytvoriť securityHandler a prejsť na ňu a loginService. Všetky zabezpečené aplikácie musia mať službu prihlásenia, inak ich mólo nedokáže nasadiť.

Teraz vytvorme kontextový súbor v $ JETTY_HOME / webové aplikácie vzdialenej inštancie móla, nezabudnite na pravidlá pomenovania kontextového súboru. Dajte mu rovnaký názov ako VOJNA:

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

Spustite vzdialený server móla a ak všetko dobre dopadne, mali by sme byť schopní načítať // localhost: 8080 / cargo-jetty-deployer. Mali by sme byť schopní vidieť niečo ako:

HTTP ERROR 400 Problém s prístupom / Cargo-Jetty-Deployer /. Dôvod: Príkaz / je neznámy

Nasadzovanie VOJNY na vzdialené mólo

Na vzdialené nasadenie musíme zmeniť iba našu konfiguračnú časť z pom.xml. Vzdialené nasadenie znamená, že nemáme lokálnu inštaláciu Jetty, ale máme autentizovaný prístup k aplikácii rozmiestnenia bežiacej na vzdialenom serveri.

Poďme teda zmeniť pom.xml takže konfiguračná časť vyzerá takto:

  jetty9x vzdialený runtime 127.0.0.1 8080 heslo správcu 

Tentokrát meníme typ kontajnera z nainštalovaný do diaľkový a typ konfigurácie z existujúce do beh programu. Na záver do konfigurácie pridáme názov hostiteľa, port a vlastnosti autentifikácie.

vyčistiť projekt:

mvn čistý

nainštalujte ho:

inštalácia mvn

nakoniec ho nasadte:

náklad MVV: nasadiť

To je všetko.

9. Nasadzovanie z Eclipse

Eclipse nám umožňuje vkladať servery, aby sme mohli pridať nasadenie webových projektov do bežného pracovného toku bez toho, aby sme opustili IDE.

9.1. Vkladanie móla do Eclipse

Inštaláciu móla môžeme vložiť do zatmenia výberom okno položku z hlavného panela a potom preferencie z rozbaľovacej ponuky.

Na ľavom paneli zobrazeného okna nájdeme stromovú mriežku preferenčných položiek. Potom môžeme prejsť na servery zatmenia -> alebo iba napísať servery do vyhľadávacieho panela.

Potom vyberieme adresár Jetty, ak ešte nie je pre nás otvorený, a vyberieme verziu Jetty, ktorú sme si stiahli.

Na pravej strane panelu sa zobrazí konfiguračná stránka, kde vyberieme možnosť aktivácie na aktiváciu tejto verzie móla a prechádzame do inštalačného priečinka.

Z obrazoviek bude mólo 7.x nahradené verziou móla, ktorú sme nakonfigurovali.

Aplikujeme zmeny a pri ďalšom otvorení pohľadu na servery z okien zatmenia -> podmenu zobraziť pohľad bude novo nakonfigurovaný server prítomný a môžeme naň spúšťať, zastavovať a nasadzovať aplikácie.

9.2. Nasadzovanie webových aplikácií na zabudovanom móle

Ak chcete nasadiť webovú aplikáciu do vloženej inštancie Jetty, musí existovať v našom pracovnom priestore.

Otvor servery pohľad z okna -> zobraziť pohľad a vyhľadať servery. Po otvorení môžeme kliknúť pravým tlačidlom myši na server, ktorý sme nakonfigurovali a vybrať pridať nasadenie z kontextovej ponuky, ktorá sa zobrazí.

Z Nové nasadenie dialógové okno, ktoré sa zobrazí, otvorte projekt rozbaľte a vyberte webový projekt.

Existuje Nasadiť typ časť pod Projekt rozbaľovacie pole, keď vyberieme Rozložený archív (režim vývoja), naše zmeny v aplikácii budú synchronizované naživo bez nutnosti opätovného nasadenia, toto je najlepšia voľba počas vývoja, pretože je veľmi efektívna.

Vyberám Zbalený archív (produkčný režim) bude od nás vyžadovať opätovné nasadenie vždy, keď urobíme zmeny, a uvidíme ich v prehliadači. To je najlepšie iba na výrobu, ale Eclipse to rovnako uľahčuje.

9.3. Nasadenie webovej aplikácie na externé umiestnenie

Spravidla sa rozhodneme nasadiť WAR prostredníctvom Eclipse, aby sme ladenie uľahčili. Môže prísť čas, keď ho budeme chcieť nasadiť na iné miesto, ako sú tie, ktoré používajú zabudované servery Eclipse.

Najbežnejšie je, keď je náš produkčný server online, a my chceme aktualizovať webovú aplikáciu.

Tento postup môžeme obísť nasadením v produkčnom režime a poznámkou Nasadiť umiestnenie v Nové nasadenie dialógové okno a odtiaľ vyberať VOJNU.

Počas nasadenia môžeme namiesto výberu zabudovaného servera zvoliť možnosť z servery vedľa zoznamu zabudovaných serverov. Navigujeme k $ JETTY_HOME/webové aplikácie adresár externej inštalácie Jetty.

10. Nasadzovanie z IntelliJ IDEA

Ak chcete nasadiť webovú aplikáciu na Jetty, musí existovať a už bola stiahnutá a nainštalovaná.

10.1. Lokálna konfigurácia

Otvor Bež ponuku a kliknite na ikonu Upraviť konfigurácie možnosti.

Na paneli vľavo vyhľadajte dopyt Jetty Server, ak tam nie je, kliknite v ponuke na znamienko +, vyhľadajte Mólo a vyberte Miestne. V názov pole dal Mólo 9.

Kliknite na ikonu Konfigurovať ... tlačidlo a dovnútra Jetty Home pole prejdite na domovské miesto inštalácie a vyberte ho.

Voliteľne môžete nastaviť Začiatok stránku byť // localhost: 8080 / a HTTP port: 8080, podľa potreby zmeňte port.

Choďte do Nasadenie Kliknite na kartu a kliknite na symbol +, vyberte artefakt, ktorý chcete pridať na server, a kliknite na tlačidlo OK

10.2. Vzdialená konfigurácia

Postupujte podľa rovnakých pokynov ako pri miestnych konfiguráciách móla, ale na karte server musíte zadať vzdialené umiestnenie inštalácie.

11. Záver

V tomto článku sme sa podrobne zaoberali rôznymi spôsobmi nasadenia súboru WAR na webový server Jetty.


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