Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Hibernate] [Servlet] - Servlet execution threw an exception

    salve a tutti...
    mi stò avvicinado (tutto di un botto - lo so che si deve fare un passo alla volta, ma per motivi universitari devo cercare di fare tutto insieme) al framework "Hibernate" e per prendere familiarità ho eseguito l'esempio presente sull'articolo "Introduzione ad Hibernate" e ho riportato il codice della Classe usata per testare la persistenza del javabean Persona nella seguente servlet:

    codice:
    package test;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.RequestDispatcher;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    import beans.Persona;
    
    public class PersonaUnitTest extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
    {
    	/* (non-Java-doc)
    	 * @see javax.servlet.http.HttpServlet#HttpServlet()
    	 */
    	  public PersonaUnitTest()
    	  {
    	    super();
    	  }
    	
    	  /* (non-Java-doc)
    	   * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	   */
    	  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    	  {
    		  //System.out.println("Persona Unit Test");
    		    
    		  // Recupero la sessione: attenzione, questa operazione
    		  // può essere gestita come un Singleton lungo tutta l'applicazione
    		  
      
    		  org.hibernate.Session session = 
    			  new Configuration().configure().buildSessionFactory().getCurrentSession();
    		    
    		  //Creo una nuova persona
    		  Persona p = new Persona();
    		  p.setNome("Pasquale");
    		  p.setNome("Congiustì");
    		  p.setEmail("p.congiusti@html.it");
    		    
    		  //Utilizziamo un modello transazionale dichiarativo
    		  session.beginTransaction();
    		    
    		  //Chiedo al middleware di salvare questo oggetto nel database
    		  session.save(p);
    		    
    		  //fine della transazione: salviamo tramite commit()
    		  session.getTransaction().commit();
    		    
    		  //System.out.println("I dati inseriti sono:");
    		  //System.out.println("Nome: " + p.getNome());
    		  //System.out.println("Cognome: " + p.getCognome());
    		  //System.out.println("E-Mail: " + p.getEmail());
    		  
    		  RequestDispatcher dispatcher;
    		  dispatcher = getServletContext().getRequestDispatcher("/ShowUser.jsp");
    		  dispatcher.forward(request,response);
    		  
    	  }
    	  
    	  /* (non-Java-doc)
    	   * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	   */
    	  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    	  {
    	    this.doGet(request, response);
    	  }
    }
    ho creato una web application con eclipse che si presenta così:
    c'è una pagina html (index.html) che richiama tramite un form la servlet "PersonaUnitTest" che dopo aver effettuato l'inserimento ne db fa un forward alla pagina "ShowUser.jsp" che non fa altro che scrive un messaggio di conferma

    il punto è che quando eseguo l'application mi esce questo errore:
    codice:
    exception
    
    javax.servlet.ServletException: Servlet execution threw an exception
    
    root cause
    
    java.lang.NoClassDefFoundError: org/dom4j/DocumentException
    	test.PersonaUnitTest.doGet(PersonaUnitTest.java:44)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    cosa può essere?...un problema con Hibernate o con la Servlet?

    scusate la domanda che forse è stupida ma sono i mie primi "esperimenti" sia con le Servlet che con hibrnate

    un infinito grazie a chi mi rispondera!!!!

    Guitar Pub, il sito dedicato al mondo della chitarra e dei chitarristi.

    Il mio Spazio

  2. #2
    Ciao,
    l'errore segnalato indica l'assenza di alcune librerie necessarie.

    Devi importare sotto il classpath del web server (di Tomcat, se usi quello) le librerie di Hibernate, quel file JAR indicato all'inizio dell'articolo. Puoi includere le librerie a livello della singola applicazione Web-inf/lib, o a livello globale (tomcat/lib). Nel secondo caso avrai la visibilita' di quel package da tutti i progetti.

    Saluti.
    Pasquale Congiusti'.

  3. #3
    Ho risolto grazie!!! ...ho incluso le librerie nel classpath dell'applicazione e ora funziona tutto!!!
    Guitar Pub, il sito dedicato al mondo della chitarra e dei chitarristi.

    Il mio Spazio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.