Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Running Eclipselink JPA in OSGi Environment(OSGi eclipselink JPA)
Running Eclipselink JPA in OSGi Environment [message #1868085] Thu, 11 July 2024 08:20
Christian Eugster is currently offline Christian EugsterFriend
Messages: 214
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
Hi
I am trying to run EclipseLink 4.0.3 JPA in an OSGI Environment
I use the EclipseLink 4.0.2 OSGi Bundles in Target Platform.
I create an OSGi bundle with Activator
I put the persistence.xml into the META-INF directory
I add Meta-Persistence: META-INF/persistence.xml to MANIFEST.MF of the Plugin-Project:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plugin
Bundle-SymbolicName: ch.eugster.persistence.plugin
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: ch.eugster.persistence.plugin.Activator
Bundle-ClassPath: lib/mysql-connector-j-9.0.0.jar,
 .
Require-Bundle: org.eclipse.core.runtime,
 jakarta.persistence-api;bundle-version="3.1.0",
 org.eclipse.persistence.asm.source;bundle-version="9.7.0",
 org.eclipse.persistence.core;bundle-version="4.0.3",
 org.eclipse.persistence.jpa;bundle-version="4.0.3",
 jakarta.validation.jakarta.validation-api;bundle-version="3.0.2"
Bundle-RequiredExecutionEnvironment: JavaSE-21
Automatic-Module-Name: ch.eugster.persistence.plugin
Bundle-ActivationPolicy: lazy
Meta-Persistence: META-INF/persistence.xml


The persistence.xml looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence version="3.0"
	xmlns="https://jakarta.ee/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence 
             https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">

	<persistence-unit name="test">
		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
		<properties>
			<property name="jakarta.persistence.jdbc.driver"
				value="com.mysql.cj.jdbc.Driver" />
			<property name="jakarta.persistence.jdbc.url"
				value="jdbc:mysql://localhost:3306/test" />
			<property name="jakarta.persistence.jdbc.user" value="test" />
			<property name="jakarta.persistence.jdbc.password"
				value="test" />
			<property
				name="jakarta.persistence.schema-generation.database.action"
				value="create" />
		</properties>
	</persistence-unit>
</persistence>


I add a schema "test" with all privileges for user test and password test in my local mysql database system
in the Activator.start method I add code:

		Map<String, Object> properties = new HashMap<String, Object>();
		properties.put("jakarta.persistence.provider", PersistenceProvider.class);
		properties.put("jakarta.persistence.jdbc.driver", Driver.class);
		properties.put("jakarta.persistence.jdbc.url", "jdbc:mysql://localhost:3306/test");
		properties.put("jakarta.persistence.jdbc.user", "test");
		properties.put("jakarta.persistence.jdbc.password", "test");
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("test", properties);
		EntityManager em = emf.createEntityManager();
		em.close();
		emf.close();


(the persistence.xml I put for getting shure).

When running I get the stacktrace:

!SESSION 2024-07-11 10:15:10.991 -----------------------------------------------
eclipse.buildId=unknown
java.version=21.0.1
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_CH
Command-line arguments:  -dev file:/Users/christian/Projekte/bidib/workspace/.metadata/.plugins/org.eclipse.pde.core/OSGi Framework/dev.properties -os macosx -ws cocoa -arch x86_64 -consoleLog -console

!ENTRY ch.eugster.persistence.plugin 4 0 2024-07-11 10:15:15.542
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Exception in ch.eugster.persistence.plugin.Activator.start() of bundle ch.eugster.persistence.plugin.
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:854)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387)
	at org.eclipse.osgi.container.Module.doStart(Module.java:639)
	at org.eclipse.osgi.container.Module.start(Module.java:498)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:2074)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:143)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2065)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2007)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1968)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1884)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)
Caused by: jakarta.persistence.PersistenceException: No Persistence provider for EntityManager named test
	at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:86)
	at ch.eugster.persistence.plugin.Activator.start(Activator.java:30)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:571)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825)
	... 14 more
Root exception:
jakarta.persistence.PersistenceException: No Persistence provider for EntityManager named test
	at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:86)
	at ch.eugster.persistence.plugin.Activator.start(Activator.java:30)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:833)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:571)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:825)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:775)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1057)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:387)
	at org.eclipse.osgi.container.Module.doStart(Module.java:639)
	at org.eclipse.osgi.container.Module.start(Module.java:498)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:2074)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:143)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2065)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:2007)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1968)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1884)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)
____________________________
Welcome to Apache Felix Gogo

g! Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.parsson.JsonProviderImpl of service jakarta.json.spi.JsonProvider in bundle org.eclipse.parsson
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.activation.MailcapRegistryProviderImpl of service jakarta.activation.spi.MailcapRegistryProvider in bundle angus-activation
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.activation.MimeTypeRegistryProviderImpl of service jakarta.activation.spi.MimeTypeRegistryProvider in bundle angus-activation
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.imap.IMAPProvider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.imap.IMAPSSLProvider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.smtp.SMTPProvider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.smtp.SMTPSSLProvider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.pop3.POP3Provider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.pop3.POP3SSLProvider of service jakarta.mail.Provider in bundle org.eclipse.angus.mail
Juli 11, 2024 10:15:15 AM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider org.eclipse.angus.mail.util.MailStreamProvider of service jakarta.mail.util.StreamProvider in bundle org.eclipse.angus.mail

!ENTRY org.eclipse.osgi 4 0 2024-07-11 10:15:15.882
!MESSAGE Bundle ch.eugster.persistence.plugin_1.0.0.qualifier [1] is not active.


I do not understand, what I am doing wrong. Am I missing something? Any help is appreciated!

Christian

[Updated on: Thu, 11 July 2024 08:23]

Report message to a moderator

Previous Topic:PersistenceUnitLoadingException
Next Topic:Java SE '21' is not fully supported yet
Goto Forum:
  


Current Time: Wed Jan 15 00:33:30 GMT 2025

Powered by FUDForum. Page generated in 0.02852 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top