Tomcat Embedded – pierwsze kroki z aplikacją webową

Ania Dobrowolska

21 października 2015

Java

1 Comment

Co zrobić żeby uruchomić aplikację napisaną w Javie na serwerze? Najlepiej zacząć od czegoś prostego. Zwykle nie potrzebujemy od razu wszystkich funkcji jakie udostępnia pełny serwer aplikacji. Polecam rozpocząć od kontenera serwletów, który jest częścią serwera aplikacji. Wybierając wbudowaną wersję oszczędzamy czas na pobieraniu i instalacji kontenera. Polecam zacząć od Tomcat Embedded.

Generowanie szablonu aplikacji

Niedawno omawiałam jak stworzyć i uruchomić aplikację opartą o Mavena. Tym razem pokażę jak stworzyć i uruchomić aplikację webową. Pierwszym krokiem jest utworzenie projektu Mavena, wybierając odpowiedni rodzaj archetypu – maven-archetype-webapp. Dzięki temu uzyskujemy szablon z prawidłową strukturą webowej aplikacji. Pojawiło się kilka nowych elementów, których nie było w aplikacji stworzonej w poprzednim wpisie. Na co warto zwrócić uwagę:

  • sposób pakowania projektu
    W pliku pom.xml zmienił się sposób pakowania, teraz przyjmuje wartość war. Nowa wartość jest skrótem od Web application ARchive. Po zbudowaniu projektu w folderze target znajdziemy wynikowy plik z rozszerzeniem war.
  • w pom.xml pojawił się nowy tag <build>
    Pozwala manipulować ustawieniami budowania projektu. Aktualnie zawiera tylko nazwę wynikowego pliku. W dalszej części wpisu pokażę, jak użyć go do uruchomienia wbudowanego Tomcata.
  • nowy katalog webapp
    Zgodnie z dokumentacją struktury projektu zawiera pliki aplikacji webowej.
  • nowy plik web.xml
    Jest to deskryptor wdrożenia – główny plik konfiguracyjny aplikacji webowej. Umieszczony jest w src/main/webapp/WEB-INF. Niestety jest on generowany dla starszej wersji API serwletów. Aktualnie chcąc korzystać z najnowszego wydanego API (3.1.0) powinniśmy go zaktualizować, zgodnie z dokumentacją Oracle.
  • nowy plik index.jsp
    JSP to technologia pozwalająca na dodawanie kodu Javy do kodu HTML. W wygenerowanym pliku aktualnie mamy tylko HTML.

Konfiguracja i uruchomienie Tomcata Embedded

Maven ma wiele pluginów. Istnieje również taki, który uruchamia wbudowanego Tomcata. Wystarczy wewnątrz tagu <build> umieścić:

Tag port jak sama nazwa wskazuje określa na którym porcie zostanie uruchomiony serwer, można wybrać inny, który nie jest zajęty. Path to część adresu URL (ścieżka dostępu do zasobu), zawsze powinien zaczynać sie od /. Więcej o budowie adresu URL można przeczytać w Wikipedii, a o możliwości konfigurowania pluginu na jego stronie.

Plugin udostępnia nowy goal Mavena – tomcat7:run. Zwykle uruchamiam serwer bezpośrednio z IntelliJ IDEA. Tworząc nową konfigurację uruchamiania Mavena należy podać tomcat7:run jako argument w polu Command Line.

Po uruchomieniu w konsoli widać informację o starcie Tomcata Embedded. Do momentu zatrzymania procesu (czerwonym kwadratem po lewej stronie) pod linkiem http://localhost:9090/ będzie widoczna zawartość pliku index.jsp, czyli napis “Hello World!”.

Uruchomienie Tomcat Embedded

Brak konieczności pobierania i instalowania kontenera serwletów oszczędza sporo czasu. Warto również wykorzystywać serwery czy kontenery serwletów typu embedded podczas testów automatycznych.


Zdjęcie wyróżniające: FreeImages.com/Grazyna Suchecka

 

Related Posts

Confitura 2016

W tym roku odbyła się jubileuszowa 10 edycja Confitury. Konferencję mogę szczerze polecić każdemu kto chce być na bieżąco z technologiami związanymi z JVM. Wykłady były na bardzo dobrym poziomie. Jak co roku poznałam kilka nowych osób i spotkałam znajomych, z którymi widuję się tylko na branżowych konferencjach. Luźna atmosfera pozwoliła na rozmowę z prelegentami.

Read More

PJUG Kraków – Java 9 i JUnit 5

Na kolejnym meetupie Polish Java User Group w Krakowie same nowości – Java 9 i JUnit 5. Coraz więcej wiadomo o Javie 9 – tym razem można było zobaczyć przykłady kodu korzystającego z JDK 9 Early Access Release. Na drugim wykładzie dowiedziałam się jak będzie wyglądała nachodząca wersja jednej z najpopularniejszych bibliotek do testowania – JUnit.

Read More

1 Comment

Dodaj komentarz

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