[
https://issues.apache.org/jira/browse/OPENJPA-2003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13041602#comment-13041602
]
reverttoconsole commented on OPENJPA-2003:
------------------------------------------
including the "class in the jar" (<class>) in the persistence.xml.
> java.lang.NoClassDefFoundError: (initialization failure) raised when
> @MappedSuperClass is present in a jar
> ----------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-2003
> URL: https://issues.apache.org/jira/browse/OPENJPA-2003
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 1.2.2
> Environment: Spring 3.0x, JUnit 4.4
> Reporter: reverttoconsole
>
> I have a @MappedSuperclass BaseEntity (empty) that's include in a
> common-utils.jar. In another maven project, I have JPA 1.0 entities which
> extend BaseEntity. On running a unit test, I get the following error:
> Caused by: java.lang.NoClassDefFoundError: xxx.entity.ProfileLoadError
> (initialization failure)
> at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
> at java.lang.Class.forNameImpl(Native Method)
> at java.lang.Class.forName(Class.java:169)
> at
> org.apache.openjpa.meta.MetaDataRepository.classForName(MetaDataRepository.java:1522)
> at
> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypesInternal(MetaDataRepository.java:1504)
> at
> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypesLocking(MetaDataRepository.java:1491)
> at
> org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypes(MetaDataRepository.java:1484)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.loadPersistentTypes(AbstractBrokerFactory.java:276)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:228)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
> at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:59)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:39)
> at java.lang.reflect.Method.invoke(Method.java:612)
> at
> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod(AbstractEntityManagerFactoryBean.java:423)
> at
> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:485)
> at $Proxy21.createEntityManager(Unknown Source)
> at
> org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:234)
> at $Proxy22.persist(Unknown Source)
> at
> org.frb.bos.tcms.profile.SeedData.afterPropertiesSet(SeedData.java:37)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
> ... 37 more
> If I move the BaseEntity into the maven project, I don't get this error.
> Turns out that the error is gone when I include BaseEntity in
> persistence.xml. But it seems to me that this has to be documented clearly or
> atleast the error message should be clearer because NoClassDefFoundError is
> misleading. Maybe openjpa's classloader doesn't automatically scan the
> classpath for the missing entities?
> I don't get this error in hibernate.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira