Mariusz Prowaźnik

o programowaniu w Javie, Scali i Clojure.


ClassNotFoundException przy uruchamianiu projektu Spring+Maven+Tomcat w Eclipse

Podczas wdrażania na serwer Tomcat projektu stworzonego przy użyciu Spring'a i Maven'a w Eclipse można napotkać na problem objawiający się wyjątkiem:

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 

Problem taki może być powodowany brakiem listenera uruchamiającego kontekst Springa w pliku web.xml;
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/Spring/applicationContext.xml</param-value>
</context-param>
 
<listener>
    <listener-class>
          org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

Jeśli to nie jest przyczyną problemu, to należy sprawdzić zawartość katalogu: {workspace}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\{project}\WEB-INF\lib
Dodając serwer w środowisku Eclipse, tworzy on katalog w przestrzeni roboczej (workspace) i powinny się tam znaleźć wdrażane aplikacje webowe. Podany wyżej katalog powinien zawierać biblioteki projektu, jeśli nie, to jest to przyczyną problemu.

Rozwiązania są następujące:
1. Biblioteki te można skopiować ręcznie
2. Można również dodać wpis w Deployment Assembly we właściwościach projektu:
Należy dodać zależności Maven'a, oraz projekty zależne (o ile takie są).
3. Można też zainstalować dodatki integrujące wtyczkę M2Eclipse z WTP (Web Tools Platform). W tym celu trzeba poprzez Help->Install new software i używając adresu http://m2eclipse.sonatype.org/sites/m2e-extras wybrać Maven Integration for Eclipse WTP:
Po kliknięciu kliknąć prawym przyciskiem myszy na projekcie i wybraniu Maven->Update project configuration wpisy Deployment Assembly powinny się dodać automatycznie:

Brak komentarzy :

Prześlij komentarz