[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-users] [eclipselink 2.0] MappedSuperclassTypeImpl can cause ClassNotFoundException
|
Hi, I'm using EclipseLink 2.0 (trunk build) for doing CTS 6 Early Access on our WAS (TmaxSoft JEUS).
When I executed MappedSuperclass-related tests,
I met ClassNotFoundException from MappedSuperclassTypeImpl#create(.....).
Internal Exception: java.lang.ClassNotFoundException: com.sun.ts.tests.ejb30.persistence.metamodelapi.mappedsuperclasstype.Employee
at org.eclipse.persistence.exceptions.ValidationException.classNotFoundWhileConvertingClassNames(ValidationException.java:2290)
at org.eclipse.persistence.descriptors.ClassDescriptor.convertClassNamesToClasses(ClassDescriptor.java:1209)
at org.eclipse.persistence.internal.jpa.metamodel.MappedSuperclassTypeImpl.create(MappedSuperclassTypeImpl.java:88)
at org.eclipse.persistence.internal.jpa.metamodel.ManagedTypeImpl.create(ManagedTypeImpl.java:414)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.initialize(MetamodelImpl.java:291)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.<init>(MetamodelImpl.java:85)
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.<init>(MetamodelImpl.java:95)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getMetamodel(EntityManagerFactoryImpl.java:433)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getMetamodel(EntityManagerImpl.java:2054)
at com.sun.ts.tests.ejb30.persistence.metamodelapi.mappedsuperclasstype.Client.mappedSuperclassType(Client.java:58)
I analyzed that MappedSuperclassTypeImpl#create(.....) uses the class loader of org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.
But if ecliselink.jar including UnitOfWorkImpl class is a system library,
metamodel.getSession().getActiveSession().getClass().getClassLoader()
always returns the system class loader, not application's class loader.
Therefore, it always cause ClassNotFoundException on environment which uses ecliselink.jar as system library.
I know there's no requirement that eclipselink.jar shall be loaded per application. Am I wrong?
--
Best regards,
Eugene Chung (Korean : 정의근)