2012-03-24 13 views
10

Sto provando a eseguire una configurazione iniziale con Hibernate in Eclipse, durante la distribuzione con Tomcat.java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration

ho incontrato il seguente problema:

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) 

ho Goggled il mio problema in linea e capisco che ha qualcosa a che per il percorso di classe del progetto.

Ho aggiunto una libreria utente al mio progetto contenente tutti i vasi sotto la directory "required" nel download di ibernazione, ma non sembra funzionare.

Per vedere la schermata del mio progetto here:

+0

hai provato a mettere i tuoi vasi ibernati direttamente nel percorso di costruzione? –

+0

Come per l'immagine allegata, penso che la voce DOCTYPE nel file hibernate.cfg.xml. Sostituire con iscrizione qui sotto e provarlo .. kandarp

risposta

23

che stai ricevendo l'errore perché le librerie Hibernate non sono disponibili per Tomcat. Nella tua immagine, sotto il set di librerie di ibernazione c'è un set vuoto chiamato "Librerie di app Web": questo è l'insieme delle librerie di sospensione.

Fai clic con il pulsante destro del mouse sul progetto -> Percorso di creazione -> Configura percorso di creazione e rimuovi il set di ibernazione dal percorso di generazione. Ora importa i vasi nella cartella WEB-INF/lib. Aggiorna il tuo progetto e ora dovresti vederli elencati nel set di "Librerie di app Web" (mi rendo conto che è un po 'fastidioso doverli importare nel tuo codice base - qualcun altro potrebbe sapere un modo migliore per farlo che non coinvolgere la copia dei vasi a)

+0

Ha funzionato! Grazie mille!!! – Blue

+0

Dopo aver fatto ciò dovresti posizionare il file di configurazione di ibernazione? – gmustudent

+0

@Chris White che ne dici di IntelliJ IDEA? – aircraft

17

Questo errore può accadere quando i file jar non è stato esportato con il tuo archivio web. Puoi fare ciò che @Chris White ha detto o puoi seguire i passaggi seguenti se usi Eclipse.

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

Nell'elenco sul lato sinistro del mouse sul Assemblea Deployment. Fai clic sul pulsante "Aggiungi". Selezionare "Java Build Path Entries" e fare clic su successivo a. Ora seleziona i tuoi file jar o libreria in ibernazione. Fai clic su termina. Quindi fare clic su Ok.
Riavviare il server se necessario.

+1

Sì, questo è stato davvero utile. +1 –

+1

Grazie mille !!! Ha funzionato per me !!! – Vijay

+1

Questa soluzione è più elegante in quanto non richiede la copia della libreria nel progetto. Trovo che sia meglio riutilizzare le dipendenze dal contenitore invece di copiarle tutto il tempo. –

2

Un modo più semplice di quello di Chris White.

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.

fare le stesse cose, ma invece di importare i vasi ogni volta per un nuovo progetto, ** copiare i vasi d'ibernazione nella cartella lib di Apache Tomcat ** (o qualunque sia il server di u sta utilizzando).

Problemi correlati