I tried using the drivers that come with “JDBC Persistence MariaDB” and “JDBC Persistence MySQL”, which are OSGI compliant. The “JDBC Persistence MariaDB” is working with the same URL/User/Password. Only the JPA Persistence is failing. I even tried copying the drivers to the add-on folder which doesn’t help.
Besides, I tried the one from https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector/. I then see in the log (as for the other ones)
19:28:05.957 [INFO ] [.persistence.jdbc.internal.JdbcMapper] - JDBC::openConnection: Driver is available::Yank setupDataSource
so that one is OSGI compliant as well. But it doesn’t work either.
When I restart openHAB, then I get the following output from JPA:
19:53:00.847 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : BundleComponentActivator : ComponentHolder created.
19:53:00.870 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : ConfigurableComponentHolder configuration updated for pid org.openhab.jpa with change count 28
19:53:00.874 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Dependency Manager created $000interface=org.openhab.core.items.ItemRegistry, filter=null, policy=static, cardinality=1..1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=null, parameter=0
19:53:00.885 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Component created: DS=DS14, implementation=org.openhab.persistence.jpa.internal.JpaPersistenceService, immediate=false, default-enabled=true, factory=null, configuration-policy=require, activate=activate, deactivate=deactivate, modified=null configuration-pid=[org.openhab.jpa]
19:53:00.887 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Component Services: scope=singleton, services=[org.openhab.core.persistence.PersistenceService, org.openhab.core.persistence.QueryablePersistenceService]
19:53:00.897 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Component Properties: {}
19:53:00.898 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Querying state disabled
19:53:00.909 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Querying state disabled
19:53:00.910 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Component can not be activated since it is in state disabled
19:53:00.921 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService] : Querying state disabled
19:53:00.923 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Updating target filters
19:53:00.931 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : No change in target property for dependency $000: currently registered: false
19:53:00.937 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : No existing service listener to unregister for dependency $000
19:53:00.943 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Setting target property for dependency $000 to null
19:53:00.946 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : New service tracker for $000, initial active: false, previous references: {}, classFilter: (objectClass=org.openhab.core.items.ItemRegistry), initialReferenceFilter (objectClass=org.openhab.core.items.ItemRegistry)
19:53:00.953 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : dm $000 tracker reset (closed)
19:53:00.957 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.items.ItemRegistry}={service.id=182, service.bundleid=148, service.scope=bundle, component.name=org.openhab.core.internal.items.ItemRegistryImpl, component.id=27} (enter)
19:53:00.965 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : dm $000 tracking 1 SingleStatic active: false trackerOpened: false optional: false
19:53:00.972 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.items.ItemRegistry}={service.id=182, service.bundleid=148, service.scope=bundle, component.name=org.openhab.core.internal.items.ItemRegistryImpl, component.id=27} (exit)
19:53:00.974 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : dm $000 tracker opened
19:53:00.978 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : registering service listener for dependency $000
19:53:00.985 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Changed state from disabled to unsatisfiedReference
19:53:00.987 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Component enabled
19:53:00.989 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : ActivateInternal
19:53:00.993 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state unsatisfiedReference
19:53:01.003 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state unsatisfiedReference
19:53:01.008 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Activating component from state unsatisfiedReference
19:53:01.017 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state unsatisfiedReference
19:53:01.020 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state unsatisfiedReference
19:53:01.022 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Changed state from unsatisfiedReference to satisfied
19:53:01.023 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : registration change queue [registered]
19:53:01.029 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Checking constructor public org.openhab.persistence.jpa.internal.JpaPersistenceService(org.openhab.core.items.ItemRegistry)
19:53:01.041 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : getReferenceClass: Looking for interface class org.openhab.core.items.ItemRegistry through loader of org.openhab.persistence.jpa.internal.JpaPersistenceService
19:53:01.044 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : getParameterClass: Found class org.openhab.core.items.ItemRegistry
19:53:01.046 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Found constructor with 1 arguments : public org.openhab.persistence.jpa.internal.JpaPersistenceService(org.openhab.core.items.ItemRegistry)
19:53:01.051 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : This thread collected dependencies
19:53:01.061 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : getService (single component manager) dependencies collected.
19:53:01.064 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state satisfied
19:53:01.065 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Querying state satisfied
19:53:01.066 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : For dependency $000, optional: false; to bind: [[RefPair: ref: [{org.openhab.core.items.ItemRegistry}={service.id=182, service.bundleid=148, service.scope=bundle, component.name=org.openhab.core.internal.items.ItemRegistryImpl, component.id=27}] service: [null]]]
19:53:01.089 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : getting activate: activate
19:53:01.093 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Locating method activate in class org.openhab.persistence.jpa.internal.JpaPersistenceService
19:53:01.105 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Declared Method org.openhab.persistence.jpa.internal.JpaPersistenceService.activate([interface org.osgi.service.component.ComponentContext]) not found
19:53:01.107 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Found activate method: public void org.openhab.persistence.jpa.internal.JpaPersistenceService.activate(org.osgi.framework.BundleContext,java.util.Map)
19:53:01.109 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : invoking activate: activate: parameters [org.eclipse.osgi.internal.framework.BundleContextImpl, org.apache.felix.scr.impl.helper.ReadOnlyDictionary]
19:53:01.112 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : invoked activate: activate
19:53:01.121 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Set implementation object for component
19:53:01.123 [DEBUG] [ce.jpa.internal.JpaPersistenceService] - bundle org.openhab.persistence.jpa:3.3.0 (287)[org.openhab.persistence.jpa.internal.JpaPersistenceService(343)] : Changed state from satisfied to active
The exact error message when trying to persist an item using JPA is:
20:00:19.297 [WARN ] [org.openhab.core.items.GenericItem ] - failed notifying listener 'org.openhab.core.persistence.internal.PersistenceManagerImpl@23d536da' about state update of item settingsHoliday: There were errors initializing your configuration: <openjpa-2.4.0-r422266:1674604 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "org.mariadb.jdbc.Driver" and URL "jdbc:mariadb://10.0.0.6/openhab". You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:254)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:122)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:849)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:310)
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:650)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:154)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59)
at org.openhab.persistence.jpa.internal.JpaPersistenceService.store(JpaPersistenceService.java:145)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473)
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver cannot be found by org.openhab.persistence.jpa_3.3.0
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:529)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:524)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:84)
... 21 more
org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-2.4.0-r422266:1674604 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "org.mariadb.jdbc.Driver" and URL "jdbc:mariadb://10.0.0.6/openhab". You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:254)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:122)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:849)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:310)
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:650)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:154)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59)
at org.openhab.persistence.jpa.internal.JpaPersistenceService.store(JpaPersistenceService.java:145)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473)
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver cannot be found by org.openhab.persistence.jpa_3.3.0
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:529)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:524)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:84)
... 21 more
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:217) ~[?:?]
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:154) ~[?:?]
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226) ~[?:?]
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153) ~[?:?]
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59) ~[?:?]
at org.openhab.persistence.jpa.internal.JpaPersistenceService.store(JpaPersistenceService.java:145) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152) ~[?:?]
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473) ~[?:?]
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.RuntimeException: There were errors initializing your configuration: <openjpa-2.4.0-r422266:1674604 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "org.mariadb.jdbc.Driver" and URL "jdbc:mariadb://10.0.0.6/openhab". You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:254)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:122)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:849)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:310)
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:650)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:154)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:226)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:153)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:59)
at org.openhab.persistence.jpa.internal.JpaPersistenceService.store(JpaPersistenceService.java:145)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.handleStateEvent(PersistenceManagerImpl.java:152)
at org.openhab.core.persistence.internal.PersistenceManagerImpl.stateChanged(PersistenceManagerImpl.java:473)
at org.openhab.core.items.GenericItem.lambda$1(GenericItem.java:259)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver cannot be found by org.openhab.persistence.jpa_3.3.0
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:529)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:524)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:84)
... 21 more
at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:324) ~[?:?]
at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670) ~[?:?]
at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:650) ~[?:?]
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202) ~[?:?]
... 11 more
Thanks for your assistance @Wolfgang_S, but I still have no clue what’s wrong. Any further suggestions?