2010-08-16 2 views
0

je suis essayer d'exécuter une application d'échantillon de mise en veille prolongée, il me donne une erreur sur le temps d'exécution:java.lang.NullPointerException dans un exemple de programme de mise en veille prolongée

log4j: WARN Aucun appenders n'a pu être trouvée pour enregistreur (org.hibernate.cfg.Environment).
log4j: WARN Veuillez initialiser le système log4j correctement.
Exception dans le fil "principal" java.lang.NullPointerException à transaction.rollback();

c'est en Main.java:

public class Main { 

public static void main(String[] args) { 
    Session session = HibernateUtil.getSessionFactory().openSession(); 
    Transaction transaction = null; 
    try { 
     transaction = session.beginTransaction(); 
     Address address = new Address("ABC", "Delhi", "TN", "110001"); 
     Student student = new Student("kumar", address); 
     session.save(student); 
     transaction.commit(); 
    } catch (HibernateException e) { 
     transaction.rollback(); 
     e.printStackTrace(); 
    } finally { 
     session.close(); 
    } 
+0

Savez-vous quelle ligne il est défaillant sur? – ChrisF

+0

Vous pouvez voir à partir de la sortie de l'exception qu'il a été lancé à partir de la méthode principale sur un appel à transaction.rollback() –

Répondre

1

Si changer

transaction.rollback(); 

à

if (transaction != null) { 
    transaction.rollback(); 
} 

comme possible pour l'attribution de la transaction pour lancer une exception.

Si vous voulez vous débarrasser des messages Log4J, vous pouvez ajouter un appel à

BasicConfigurator.configure(); 

à l'enregistrement de base de configuration

+0

où je devrais écrire cette ligne: BasicConfigurator.configure(); – singh

+0

Faites-en la première ligne dans la méthode principale, vous pouvez en savoir plus sur log4j ici - http://logging.apache.org/log4j/1.2/index.html mais notez, il a été "dépassé" par le logback http: // logback.qos.ch/ –