[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[List Home]
|
[eclipselink-users] [eclipselink 2.0] MappedSuperclassTypeImpl can cause ClassNotFoundException
|
- From: Eu-gene Chung <bluewolf@xxxxxxxxxx>
- Date: Mon, 14 Sep 2009 15:34:44 +0900
- Delivered-to: eclipselink-users@eclipse.org
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:from:date :x-google-sender-auth:message-id:subject:to:content-type; bh=BFJ1q9GGxCwKXhyDoj8F2euD8p6rNRA4Nq5YyhMBVHE=; b=JmBWbas4DMKhxAs78QaADcFMrRjoRBpojAWADtOOoRBwXsJl76z9wC18MapAAYj7Is 898ExpyElUnbei9sB9ByiFl9xnmMXwW5dSKh+FXKeA/hDhHJ3UTlESpKIA+KpSNfkd/O yFKKdc1gQnWJxO7ygqZen9ZIqIYruIHBCguIo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; b=C7tinnfzeFrQc5wOf+9MLqQC5tjxJ50bQjSv0XZvPkNjTwvZfQbqfAfZeHntioTPr4 d+aqjAAyHwv8+faLghFY42MJim3Go7XHKwcOz8er0YsEGa6FR4WvjBmtDIh59Q3b5poE xEl055FMOTgG6qQ2ltGFvRBI8jUvJehJZlmUM=
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 : ììê)