Jetty, lekko z JSF

Jetty, lekko z JSF

Jetty jest lekkim serwerem HTTP, który może także służyć jako kontener serwletów. Jest na tyle mały, że można go stosować np. w urządzeniach. Tyle z jego strony.

Przygotowałem maleńki projekt w Java, który uruchamia kontener Jetty, a następnie na podstawie plików właściwości znalezionych w swoim katalogu potrafi uruchomić aplikację JSF.

Do zbudowania projektu należy użyć Mavena. Aby go zainstalować pod Debianowatymi, wydajemy polecenie:

aptitude update
aptitude install maven2

Następnie po rozpakowaniu projektu, przechodzimy do jego katalogu i wpisujemy:

mvn clean install

Jeśli tylko wszystko przebiegnie poprawnie (nie przestrasz się, Maven lubi pobierać tony elementów z sieci), w nowo utworzonym podkatalogu target, znajdziesz archiwum JettyEmbed-1.0.zip

Po jego rozpakowaniu, można uruchomić projekt za pomocą jednego ze skryptów z katalogu bin (po jednym dla Linuksa i Windowsa)

Po pierwszym uruchomieniu tworzony jest domyślny plik konfiguracyjny “jettyembed.properties”, w którym zdefiniowane są dwa konektory: jeden do nasłuchu na porcie 8080, drugi z możliwością wykorzystania SSL, na porcie 8443.

Skrypt Maven’a tworzy także domyślny keystore oraz certyfikat strony (dla SSL).

Można oczywiście stworzyć swój keystore, lub dodać inne certyfikaty do utworzonego.

Aby zdeploy’ować więcej niż jedną aplikację, można utworzyć więcej plików *.properties, na podstawie domyślnie utworzonego.

Poniżej opiszę poszczególne opcje pliku:

  • keystore_path – ścieżka do keystore (domyślnie wykorzystywany jest automatycznie utworzony),
  • key_password – hasło certyfikatu strony (domyślnie skrypt Mavena używa: “key_password”),
  • store_password – hasło do keystore (domyślnie: “store_password”,
  • listen_address – adres nasłuchu (domyślnie localhost),
  • listen_http_port – opcjonalny, jeśli podany Jetty utworzy konektor HTTP (bez SSL), nasłuchujący na podanym porcie (domyślnie 8080). Przynajmniej jeden z konektorów musi zostać zdefiniowany,
  • listen_https_port – opcjonalny, jeśli podany, Jetty utworzy odpowiedni konektor SSL, nasłuchujący na podanym porcie (domyślnie 8443).
  • war_path – ścieżka do pliku .war lub rozpakowanej aplikacji
  • context_path – ścieżka względna do aplikacji (domyślnie jest to katalog główny)

Za pomocą tego maleństwa uruchomiłem zarówno swoją testową aplikację JSF, jak i Hudsona, co uważam jest wystarczającym powodem do uznania Jetty jako świetnego narzędzia.

Zachęcam do podglądania źródeł i skryptu Mavena, w którym umieszczona jest cała magia budowy projektu. Stąd już tylko krok do stworzenia własnej samouruchamiającej się aplikacji JSF, bez potrzeby instalowania serwerów takich jak Tomcat.

Źródła projektu można pobrać z tąd. (NetBeans Maven Project: JettyEmbed)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.