czwartek, 9 marca 2017

Hello World w Springu

Swoją przygodę z projektem IWillDo zaczęłam od Springowego tutoriala. Okazuje się, że pożenienie Springa z Mavenem i Gitem, i zmuszenie go, żeby jeszcze działał pod Eclipsem, to nie taka prosta sprawa. A w każdym razie dla kogoś, kto w aplikacjach webowych stawia pierwsze kroki.
Zaczęłam od utworzenia projektu Mavenowego w Eclipse. Skorzystałam z archetypu Webapp, który tworzy od razu właściwą strukturę dla aplikacji webowych i dodaje m.in. niezbędny plik web.xml.

I tu pojawia się pierwszy problem: dodany przez archetyp plik index.jsp płacze, że "The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path". Po szybkim googlowaniu okazuje się na szczęście, że rozwiązanie jest bardzo proste - w opcjach projektu, w Targeted Runtime trzeba zaznaczyć serwer, z którego korzystamy. Uff.
Pierwsze koty za płoty. Teraz po dodaniu projektu do Tomcata mogę się cieszyć pięknym "Hello World" na localhoście.
Czas na wrzucenie zmian na repo. Tutaj z pomocą przychodzi Eclipse'owa wtyczka EGit oraz jak zawsze niezastąpiony StackOverflow. Szczęśliwie tym razem obyło się bez większych przygód. Szybki i bezbolesny merge, i możemy jechać dalej.
Przygoda za to zaczęła się, gdy próbowałam dodać Springa :). Korzystałam z dwóch tutoriali: z Crunchify i Kobiety do Kodu. I choć wydawało mi się, że wszystko robię po kolei tak jak ma być, to za Chiny ludowe nie chciało działać - czego bym nie próbowała, zawsze kończyło się przebrzydłym Apache'owym 404:
Po wielu próbach, zgrzytaniu zębów, wyrywaniu włosów i kilkukrotnym zaimportowaniu projektu jeszcze raz, wreszcie udało mi się zmusić Springa do współpracy. Wciąż nie jestem pewna jak do tego doszło... Tak czy siak, poniżej lista kilku problemów, z którymi się spotkałam:
  • Najczęściej powtarzającym się błędem były "problemy z facetami" ;) 

Trudno mi powiedzieć, jak rozwiązać ten problem. Kilka sugestii tutajtutaj i tutaj. Ostatecznie jednak projekt da się uruchomić pomimo tego błędu.
  • Przy buildowaniu Maven nadpisuje niektóre ustawienia - np. uparcie ustawiał JDK compliance na J2SE-1.5. Rozwiązanie - wymuszenie zmiany używanego JDK - tutaj. Podobnie wersja Dynamic Web Module jest nadpisywana przez Mavena - zob. linki powyżej.
  • W pewnym momencie (naprawdę nie wiem jak to się stało!) niechcący usunęłam katalog src/main/java :D - rozwiązanie problemu oczywiście na StackOverflow.
  • Problemy z zależnościami? Eclipse nie może rozwiązać importu, choć powinien? Na pomoc przychodzą F5 (odśwież projekt), Alt+F5 (Maven > Update Project) i mvn clean install. Warto też zwrócić uwagę na to, czy w Deployment Assembly jest wpis o Maven Dependencies (o czym dowiedziałam się stąd):

Tak więc uruchomienie prostego "Hello World" w Springu zajęło mi dwa dni. Ale cóż by to była za nauka, gdyby wszystko przyszło bezboleśnie :).

Brak komentarzy:

Prześlij komentarz