-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Tomcat java.lang.ExceptionInInitializerError
PostPosted: Tue Feb 27, 2007 1:51 pm 
Newbie

Joined: Tue Feb 27, 2007 12:47 pm
Posts: 1
I am trying to do a simple hello world application with hibernate annotations +mySQL in netbeans.
I can successfully get hibernate to work as a stand alone application. (also the junit test works) However when the application is deployed to tomcat I get the following error:

java.lang.ExceptionInInitializerError

When it attempts to create the session factory

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

I have spent the last 2 days searching the internet trying to find a solution and although it seems to be a common problem I've failed to find one.

Any help would be appreciated or equally if someone could point me to a step by step guide to writing a hello world web application using annotations and mysql in netbeans and deploying it to tomcat that would be equally great.

TX

Hibernate version:
hibernate-annotations-3.2.1.GA
hibernate-3.2.2.ga

Name and version of the database you are using:
mysql-connector-java-5.0.4
MySQL Server 5.0

Mapping documents:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Data Source Name -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">pass</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Debug logging of SQL statements -->
<property name="show_sql">true</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!-- List of annotated classes-->
<mapping class="org.me.persistance.Person"/>

Code

Code:
package org.me.persistance;
import org.hibernate.*;
import org.hibernate.cfg.*;

//Logging
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class HibernateUtil
{
    private static Log log = LogFactory.getLog(HibernateUtil.class);
    private static final SessionFactory sessionFactory;
   
    static
    {
        try
        {
            // Create the SessionFactory
            //For some reason we have to specify hibernate.cfg.xml explicitly this doesnt seem to be best practice
            //but using a persistance unit doesnt seem to work.configure("hibernate.cfg.xml")
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();                     
        }
        catch (Throwable ex)
        {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            log.error("Initial SessionFactory creation failed.", ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
   
    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
}



Code:
package org.me.persistance;
import org.hibernate.Session;
import org.hibernate.Transaction;


public class DataBaseFacade
{
   
    /** Creates a new instance of DataBaseFacade */
    public DataBaseFacade()
    {
 
    }
   
    public void savePerson(Person person) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = session.beginTransaction();
        session.save(person);
        tx.commit();
        session.close();
       
    }
    public void deletePerson(Person person) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = session.beginTransaction();
        session.delete(person);
        tx.commit();
        session.close();
       
       
    }


Code:
package org.me.persistance;
import javax.persistence.*;

@Entity
@Table(name = "PERSON")
public class Person implements java.io.Serializable {
   
    @Id @GeneratedValue
    @Column(name = "PERSONID")
    private int personId;
   
    @Column(name = "NAME")
    private String name;
     
    /** Creates a new instance of Person */
    public Person() {}

    public int getPersonId() { return this.personId; }
    private void setPersonId(int personId) {this.personId = personId; }

    public String getName() { return this.name; }
    public void setName(String name) {this.name = name;}   
}


Code:
package org.me.SpringTest.Controllers;
/*
* HelloSpringController.java
*
* Created on 03 February 2007, 19:11
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.me.persistance.*;

public class HelloSpringController implements Controller {
   
    /** Creates a new instance of HelloSpringController */
    public HelloSpringController() {}
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception
    {

        Person p=new Person();
        p.setName("Well done");

        DataBaseFacade instance = new DataBaseFacade();
        instance.savePerson(p);
       
        String name=httpServletRequest.getParameter("yourName");
        return new ModelAndView("Welcome.jsp", "name", name);
    }
   
}


Code:
package org.me.persistance;

import junit.framework.*;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.me.persistance.DataBaseFacade;
import org.me.persistance.Person;

public class DataBaseFacadeTest extends TestCase
{
   
    public DataBaseFacadeTest(String testName)
    {
        super(testName);
    }

    protected void setUp() throws Exception
    {
    }

    protected void tearDown() throws Exception
    {
    }

    /**
     * Test of savePerson method, of class org.me.persistance.DataBaseFacade.
     */
    public void testSavePerson()
    {
        System.out.println("savePerson");
       
        String name="It worked";
        Person p=new Person();
        p.setName(name);
           
        DataBaseFacade instance = new DataBaseFacade();
        instance.savePerson(p);
       
        //We work on the assumption that Hibernate will only generate the ID if the object has been saved
        //Since it uses whether and ID has been set or not to distinguish between insert and update commands
        if(p.getPersonId()==0)
        {
            fail("Failed to save i.e. ID is still null.");
        }
        instance.deletePerson(p);       

    }
   
}


Full stack trace of any exception that occurs:

Code:
Initial SessionFactory creation failed.java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
17:27:59,817 ERROR org.me.persistance.HibernateUtil:37 - Initial SessionFactory creation failed.
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
        at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
        at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
        at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
        at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
        at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
        at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:111)
        at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
        at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
        at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269)
        at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
        at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
        at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
        at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
        at org.me.persistance.HibernateUtil.<clinit>(HibernateUtil.java:31)
        at org.me.persistance.DataBaseFacade.savePerson(DataBaseFacade.java:28)
        at org.me.SpringTest.Controllers.HelloSpringController.handleRequest(HelloSpringController.java:29)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:806)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:619)
17:27:59,910 ERROR core.ContainerBase.[Catalina].[localhost].[/HelloSpring].[HelloSpring]:253 - Servlet.service() for servlet HelloSpring threw exception
java.lang.ExceptionInInitializerError
        at org.me.persistance.HibernateUtil.<clinit>(HibernateUtil.java:38)
        at org.me.persistance.DataBaseFacade.savePerson(DataBaseFacade.java:28)
        at org.me.SpringTest.Controllers.HelloSpringController.handleRequest(HelloSpringController.java:29)
        at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:806)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
        at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
        at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
        at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
        at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
        at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
        at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
        at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:111)
        at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
        at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
        at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
        at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269)
        at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
        at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
        at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
        at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
        at org.me.persistance.HibernateUtil.<clinit>(HibernateUtil.java:31)



[/code]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.