users@glassfish.java.net

toplink-persistence : creating several EMFs simulatenously Java SE mode

From: <glassfish_at_javadesktop.org>
Date: Thu, 09 Aug 2007 00:51:08 PDT

I am using toplink-essentials build no : 41 in a Java SE mode.

I have two web applications each package different persistence units. Both the web applications load EntityManagerFactory in their start up. Both these web apps are designed to use JPA in Java SE mode.

The problem is that i am not able to deploy both these web applications simultaneously. toplink-essentials is the system classpath. Web Server i am using is configured to use separate classloader for each application.

First web application is deployed and its EMF is successfully deployed.

When the second web application tries to create EMF, this operation fails with

javax.persistence.PersistenceException: Exception [TOPLINK-28018] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [pu1] failed.
Internal Exception: Exception [TOPLINK-30007] (Oracle TopLink Essentials - 2.0 (Build b41-beta2 (03/30/2007))): oracle.toplink.essentials.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while loading class: entity.Customer to check whether it implements @Entity, @Embeddable, or @MappedSuperclass.
Internal Exception: java.lang.ClassNotFoundException: entity.Customer

I am not sure if this is same as : https://glassfish.dev.java.net/issues/show_bug.cgi?id=3235

It looks like oracle/toplink/essentials/internal/ejb/cmp3/JavaSECMPInitializer.java uses the classloader from the first persistence unit to look for entity classes even for subsequent deployments ?

Is this a known issue ?

Thanks for your time.
-Prashant
PS: I have not tried this on b_58
[Message sent by forum member 'cprashantreddy' (cprashantreddy)]

http://forums.java.net/jive/thread.jspa?messageID=230190