Eclipse Community Forums - RDF feed
https://www.eclipse.org/forums/
Eclipse Community ForumsOSGI troubles with createEntityManagerFactory
https://www.eclipse.org/forums/index.php/mv/msg/124015/379261/#msg_379261
Originally posted by: beat.stradax.net
Hi there
I'd like to use EclipseLink in an OSGi server environment (Equinox),
but I can't get an EntityManagerFactory. I've done some successful
tests with a milestone some weeks/months ago, but this doesn't work
anymore.
When I try to get the EntityManagerFactory in the Activator's start
method of the bundle that contains the persistence.xml
(javax.persistence and org.eclipse.persistence.jpa are started one
osgi start level before), I get the following errors:
1) When I don't specify any properties:
Persistence.createEntityManagerFactory("unitname");
The OSGiPersistenceInitializationHelper#getClassLoader is called
with "bundleresource://7/unitname" and doesn't find an entry for this,
because the map contains only a key "unitname".
2) When I specify Thread.currentThread().getContextClassLoader() as a
class loader property, this class loader doesn't find the resource
"META-INF/persistence.xml" in
PersistenceProvider#createEntityManagerFactory:95.
What am I doing wrong?
BTW: it would be very helpful when the EclipseLink website would
provide an OSGi SDK zip download which contains the source plugins. I
had to checkout the projects from the SVN tag to debug the problem...
Thanks for any hint,
Beat Strasser]]>2008-08-11T19:00:18-00:00Re: OSGI troubles with createEntityManagerFactory
https://www.eclipse.org/forums/index.php/mv/msg/124015/379262/#msg_379262
Originally posted by: beat.stradax.net
> 1) When I don't specify any properties:
> Persistence.createEntityManagerFactory("unitname");
>
> The OSGiPersistenceInitializationHelper#getClassLoader is called with
> "bundleresource://7/unitname" and doesn't find an entry for this,
> because the map contains only a key "unitname".
>
> 2) When I specify Thread.currentThread().getContextClassLoader() as a
> class loader property, this class loader doesn't find the resource
> "META-INF/persistence.xml" in
> PersistenceProvider#createEntityManagerFactory:95.
Well ok. With a class loader property
"this.getClass().getClassLoader()" it works.