Uruchamianie webaplikacji z Mavenem w Eclipse

Ze względu na ciągle powtarzające się problemy i błędy Eclipse zmieniłem IDE na Intellij IDEA. Jednak ostatnio miałem okazję konfigurować środowisko z użyciem Eclipse i natknąłem się na kolejną przeszkodę - uruchamianie aplikacji webowej korzystającej z Mavena. Udało mi się jednak rozwiązać ten problem. ;-)
Sam problem objawiał się tym, że po zaimportowaniu projektu, tak samo jak po próbie dodania w ustawieniach projektu w zakładce Facets opcji Dynamic web module, projekt wciąż nie pozwalał uruchomić się jako aplikacja webowa. A nawet jeśli udało się uruchomić to zamiast poprawnego działania rzucał różnego rodzaju błędami.
Przejdźmy jednak do rozwiązania problemu. Przede wszystkim należy zaimportować nasz projekt do Eclipse. Możemy to zrobić klikając File → Import, a następnie z listy wybierając Existing Maven Projects. Po kilku kliknięciach Next i Finish mamy zaimportowaną aplikację.
Musimy także dodać plugin Tomcata 7 w sekcji build (zmieniając “kontekst-aplikacji” na interesującą nas ścieżkę np. “webapp”):
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/kontekst-aplikacji</path>
</configuration>
</plugin>
Gdy już zaimportowaliśmy projekt i dodaliśmy plugin w konfiguracji możemy
stworzyć konfiguracje uruchomieniową (Run configuration), która
wystartuje nam serwer Tomcata i zdeployuje nam aplikacje. W tym celu
wybieramy Run → Run Configurations… i dodajemy nową konfiguracje
typu Maven Build. W Base directory wprowadzamy ścieżkę
do naszego projektu (wybierając Browse Workspace.., a następnie
wybierając nasz projekt i klikając Ok).
Następnie w Goals wpisujemy tomcat7:run
,
a w zakładce JRE w polu “VM arguments” (argumenty wirtualnej maszyny):
-XX:MaxPermSize=256m -Xms128m -Xmx512m -Djava.awt.headless=true
-Xdebug -Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
Argumenty te zwiększają liczbę dostępnej pamięci dla maszyny wirtualnej, wymuszają jej uruchomienie w trybie headless (czyli w trybie, który zakłada brak podłączonego interfejsu wejścia-wyjścia), oraz sprawia, że maszyna wystawia na porcie 9000 interfejs do zdalnego debugowania.
Dzięki temu będziemy mogli podłączyć się do Tomcata za pomocą zdalnego
debugowania. Teraz też możemy utworzyć konfiguracje debugowania (Debug
configuration). Wybieramy Run → Debug configurations…
i tworzymy nową konfiguracje typu Remote Java Application.
Wybieramy nasz projekt, a w Connection properties ustawiamy host
na localhost
i port na 9000
.
Zapisujemy i gotowe ;-)
Teraz możemy uruchomić nasz projekt na Tomcat 7 wybierając pierwszą
konfigurację (będzie dostępna pod adresem localhost:8080/kontekst-aplikacji
,
a następnie podłączyć się do niej by debugować kod uruchamiając debugowanie
wg drugiej konfiguracji.
Miłego debugowania kodu w Eclipse! :-)
comments powered by Disqus