I'm failing miserablly to get hiberate to work with EJB3 annotations. When I attempt to create the session factory, I get a NoSuchMethodError. I've searched and searched, but can't find a solution. Some users have reported a similar problem using incompatible RC jars, but in this case I'm using 3.2.0ga for both hibernate.jar and hibernate-annotations.jar.
Any help greatly appreciated.
Test Case
Code:
public void testAnnotationConfigurationProblem()
{
Configuration cfg = new AnnotationConfiguration()
.addAnnotatedClass(com.myapp.domain.Test.class)
.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
.setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver")
.setProperty("hibernate.connection.url", "jdbc:hsqldb:TestDb");
SessionFactory sf = cfg.buildSessionFactory();
}
EntityCode:
package com.myapp.domain;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Test implements Serializable {
private static final long serialVersionUID = 1L;
Long id;
@Id
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
}
Stack TraceCode:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:101)
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:205)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:63)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:190)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:177)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:149)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:96)
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 com.myapp.domain.EntityTest.testAnnotationConfigurationProblem(EntityTest.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
...