2012-03-24 11 views
10

Próbuję wykonać wstępną konfigurację z Hibernate w Eclipse, podczas wdrażania z Tomcat.java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration

I napotkał następujący problem:

java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546) 
    db.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) 
    db.HibernateUtil.<clinit>(HibernateUtil.java:8) 

Mam Goggled mój problem w Internecie i rozumiem, że to ma coś wspólnego ze ścieżką do klasy projekt.

Dodałem do mojego projektu bibliotekę użytkownika zawierającą wszystkie słoiki w "wymaganym" katalogu w trybie hibernacji, ale to nie działa.

Proszę odnaleźć zrzut ekranu z mojego projektu here:

+0

Czy próbowałeś umieścić swoje słoiki hibernacji bezpośrednio na ścieżce budowania? –

+0

Zgodnie z załączonym obrazem, myślę, że Twój wpis DOCTYPE znajduje się w pliku hibernate.cfg.xml. Zastąp poniżej wpisu i przetestuj go .. kandarp

Odpowiedz

23

dostajesz błąd, ponieważ biblioteki Hibernate nie są dostępne dla Tomcat. Na twoim zdjęciu poniżej zestawu hibernacji znajduje się pusty zestaw o nazwie "Biblioteki aplikacji internetowych" - jest to zestaw, w którym muszą być przechowywane biblioteki hibernacji.

Kliknij prawym przyciskiem myszy swój projekt -> Utwórz ścieżkę -> Skonfiguruj ścieżkę budowania i usuń zestaw hibernacji ze ścieżki budowania. Teraz zaimportuj słoiki do folderu WEB-INF/lib. Odśwież swój projekt, a teraz powinieneś zobaczyć je w zestawie "Biblioteki aplikacji internetowych" (doceniam to, że jest trochę denerwujące, że musisz je zaimportować do bazy kodu - ktoś inny może znać lepszy sposób na zrobienie tego, obejmować kopiowanie słoiki in)

+0

Pracowałem! Dziękuję Ci bardzo!!! – Blue

+0

Po wykonaniu tej czynności w miejscu, w którym należy umieścić plik konfiguracji hibernacji? – gmustudent

+0

@Chris White, co powiesz na IntelliJ IDEA? – aircraft

17

Ten błąd może się zdarzyć, gdy pliki jar nie został wyeksportował ze swojego archiwum internetowego. Możesz zrobić to, co powiedział @Chris White lub możesz wykonać poniższe kroki, jeśli używasz Eclipse.

Right click the project -> Build Path -> Configure Build Path

Na liście po lewej bocznej kliknięcie Zgromadzenie Deployment. Kliknij przycisk "Dodaj" przycisk. Wybierz "Wpisy ścieżki budowania Java" "i kliknij następny. Teraz wybierz pliki jar lub bibliotekę hibernacji. Kliknij przycisk wykończenie. Następnie kliknij Ok.
W razie potrzeby uruchom ponownie serwer.

+1

Tak, to było naprawdę pomocne. +1 –

+1

Wielkie dzięki! To zadziałało dla mnie !!! – Vijay

+1

To rozwiązanie jest bardziej eleganckie, ponieważ nie wymaga kopiowania biblioteki w projekcie. Uważam, że lepiej jest ponownie używać zależności z kontenera zamiast ich kopiować przez cały czas. –

2

Prostszy sposób niż sposób Chrisa White'a.

You're getting the error because the hibernate libraries are not available to Tomcat. Right click your project -> Build Path -> Configure Build Path, and remove the hibernate set from the build path.

Czy te same rzeczy, ale zamiast importować słoiki za każdym razem dla nowego projektu, ** skopiować wymaganych słoików hibernacji w folderze lib Apache Tomcat ** (lub cokolwiek serwer u używasz).

Powiązane problemy