The addThingHandlerFactory method has thrown an exception java.lang.NoSuchMethodError

I have configured a new development environment for OH4 on my MBP.

I followed instructions and everything went well and I managed to compile and debug a binding that I’m currently working with and I could get it working and all things were online and the GUI worked well.

After updating the source code after some initial code review feed-back, I suddenly get this strange error on start-up, I have configured TRACE debugging on the binding:

Welcome to Apache Felix Gogo

g! 20:02:21.166 [INFO ] [org.openhab.core.Activator          ] - Starting openHAB 4.0.0 (build Unknown Build No.)
20:02:23.634 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.items'
20:02:23.959 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'mapdb.persist'
20:02:24.133 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.sitemap'
20:02:24.245 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.things'
20:02:26.312 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.rules'
20:02:27.532 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : BundleComponentActivator : ComponentHolder created.
20:02:27.533 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Dependency Manager created $000interface=org.openhab.core.io.net.http.HttpClientFactory, filter=null, policy=static, cardinality=1..1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=service, parameter=0
20:02:27.533 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Dependency Manager created osgi.ds.satisfying.conditioninterface=org.osgi.service.condition.Condition, filter=(osgi.condition.id=true), policy=dynamic, cardinality=1..1, bind=null, unbind=null, updated=null, field=null, field-option=null, collection-type=null, parameter=null
20:02:27.533 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Component created: DS=DS14, implementation=org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory, immediate=false, default-enabled=true, factory=null, configuration-policy=optional, activate=activate, deactivate=deactivate, modified=null configuration-pid=[binding.electroluxair]
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Component Services: scope=singleton, services=[org.openhab.core.thing.binding.ThingHandlerFactory]
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Component Properties: {osgi.ds.satisfying.condition.target=(osgi.condition.id=true)}
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Querying state disabled
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Querying state disabled
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Component can not be activated since it is in state disabled
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory] : Querying state disabled
20:02:27.534 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Updating target filters
20:02:27.535 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : No change in target property for dependency $000: currently registered: false
20:02:27.535 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] :  No existing service listener to unregister for dependency $000
20:02:27.535 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Setting target property for dependency $000 to null
20:02:27.535 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : New service tracker for $000, initial active: false, previous references: {}, classFilter: (objectClass=org.openhab.core.io.net.http.HttpClientFactory), initialReferenceFilter (objectClass=org.openhab.core.io.net.http.HttpClientFactory)
20:02:27.535 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm $000 tracker reset (closed)
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=249, service.bundleid=137, service.scope=bundle, osgi.ds.satisfying.condition.target=(osgi.condition.id=true), component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=142} (enter)
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm $000 tracking 1 SingleStatic active: false trackerOpened: false optional: false
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm $000 tracking 1 SingleStatic added {org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=249, service.bundleid=137, service.scope=bundle, osgi.ds.satisfying.condition.target=(osgi.condition.id=true), component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=142} (exit)
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm $000 tracker opened
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : registering service listener for dependency $000
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] :  No existing service listener to unregister for dependency osgi.ds.satisfying.condition
20:02:27.536 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Setting target property for dependency osgi.ds.satisfying.condition to (osgi.condition.id=true)
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : New service tracker for osgi.ds.satisfying.condition, initial active: false, previous references: {}, classFilter: (objectClass=org.osgi.service.condition.Condition), initialReferenceFilter (&(objectClass=org.osgi.service.condition.Condition)(osgi.condition.id=true))
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm osgi.ds.satisfying.condition tracker reset (closed)
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm osgi.ds.satisfying.condition tracking 2 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (enter)
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm osgi.ds.satisfying.condition tracking 2 SingleDynamic added {org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true} (exit)
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : dm osgi.ds.satisfying.condition tracker opened
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : registering service listener for dependency osgi.ds.satisfying.condition
20:02:27.537 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Changed state from disabled to unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Component enabled
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : ActivateInternal
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Activating component from state unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state unsatisfiedReference
20:02:27.538 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Changed state from unsatisfiedReference to satisfied
20:02:27.539 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : registration change queue [registered]
20:02:27.540 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Checking constructor public org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(org.openhab.core.io.net.http.HttpClientFactory)
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : getClassFromComponentClassLoader: Looking for interface class org.openhab.core.io.net.http.HttpClientFactory through loader of org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : getClassFromComponentClassLoader: Found class org.openhab.core.io.net.http.HttpClientFactory
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Found constructor with 1 arguments : public org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(org.openhab.core.io.net.http.HttpClientFactory)
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : This thread collected dependencies
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : getService (single component manager) dependencies collected.
20:02:27.541 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state satisfied
20:02:27.542 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Querying state satisfied
20:02:27.542 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : For dependency $000, optional: false; to bind: [[RefPair: ref: [{org.openhab.core.io.net.http.HttpClientFactory, org.openhab.core.io.net.http.WebSocketFactory}={service.id=249, service.bundleid=137, service.scope=bundle, osgi.ds.satisfying.condition.target=(osgi.condition.id=true), component.name=org.openhab.core.io.net.http.internal.WebClientFactoryImpl, component.id=142}] service: [null]]]
20:02:27.542 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : For dependency osgi.ds.satisfying.condition, optional: false; to bind: [[RefPair: ref: [{org.osgi.service.condition.Condition}={service.id=6, service.bundleid=0, service.scope=singleton, service.pid=0.org.osgi.service.condition.ConditionImpl, osgi.condition.id=true}] service: [null]]]
20:02:27.573 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : getting activate: activate
20:02:27.573 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Locating method activate in class org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory
20:02:27.574 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Declared Method org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory.activate([interface org.osgi.service.component.ComponentContext]) not found
20:02:27.574 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Locating method activate in class org.openhab.core.thing.binding.BaseThingHandlerFactory
20:02:27.574 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Found activate method: protected void org.openhab.core.thing.binding.BaseThingHandlerFactory.activate(org.osgi.service.component.ComponentContext)
20:02:27.575 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : invoking activate: activate: parameters [org.apache.felix.scr.impl.manager.ComponentContextImpl]
20:02:27.575 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : invoked activate: activate
20:02:27.575 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Set implementation object for component
20:02:27.575 [DEBUG] [.handler.ElectroluxAirHandlerFactory] - bundle org.openhab.binding.electroluxair:4.0.0.202307071757 (170)[org.openhab.binding.electroluxair.internal.handler.ElectroluxAirHandlerFactory(302)] : Changed state from satisfied to active
20:02:27.583 [ERROR] [core.thing.internal.ThingManagerImpl] - bundle org.openhab.core.thing:4.0.0.202307060633 (161)[org.openhab.core.thing.internal.ThingManagerImpl(233)] : The addThingHandlerFactory method has thrown an exception
java.lang.NoSuchMethodError: 'java.lang.Object javax.xml.bind.ServiceLoaderUtil.lookupUsingOSGiServiceLoader(java.lang.String, java.util.logging.Logger)'
	at javax.xml.bind.ContextFinder.find(ContextFinder.java:413) ~[?:?]
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) ~[?:?]
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) ~[?:?]
	at org.openhab.core.thing.internal.update.ThingUpdateInstructionReaderImpl.readForFactory(ThingUpdateInstructionReaderImpl.java:84) ~[?:?]
	at org.openhab.core.thing.internal.ThingManagerImpl.addThingHandlerFactory(ThingManagerImpl.java:1142) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:245) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:687) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:531) ~[?:?]
	at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:2086) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:2061) ~[?:?]
	at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:443) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:336) ~[?:?]
	at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:304) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1232) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1152) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:959) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:895) ~[?:?]
	at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1184) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:116) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:120) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:956) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[?:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:936) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:873) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:261) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:495) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:915) ~[?:?]
	at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:133) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:984) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:752) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:674) ~[?:?]
	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:437) ~[?:?]
	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:671) ~[?:?]
	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:310) ~[?:?]
	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:593) ~[?:?]
	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:74) ~[?:?]
	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:460) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) ~[?:?]
	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) ~[?:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:1) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) ~[org.eclipse.osgi-3.17.200.jar:?]
	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:944) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[?:?]
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217) ~[?:?]
	at org.eclipse.osgi.container.Module.publishEvent(Module.java:499) ~[?:?]
	at org.eclipse.osgi.container.Module.start(Module.java:486) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:445) ~[?:?]
	at aQute.launcher.Launcher.start(Launcher.java:699) ~[?:?]
	at aQute.launcher.Launcher.startBundles(Launcher.java:679) ~[?:?]
	at aQute.launcher.Launcher.activate(Launcher.java:585) ~[?:?]
	at aQute.launcher.Launcher.launch(Launcher.java:404) ~[?:?]
	at aQute.launcher.Launcher.run(Launcher.java:186) ~[?:?]
	at aQute.launcher.Launcher.main(Launcher.java:162) ~[?:?]
	at aQute.launcher.pre.EmbeddedLauncher.executeWithRunPath(EmbeddedLauncher.java:170) ~[biz.aQute.launcher.pre.jar:?]
	at aQute.launcher.pre.EmbeddedLauncher.findAndExecute(EmbeddedLauncher.java:135) ~[biz.aQute.launcher.pre.jar:?]
	at aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:52) ~[biz.aQute.launcher.pre.jar:?]

Any clue how I can fix that?

The addThingHandlerFactory method has thrown an exception
java.lang.NoSuchMethodError: 'java.lang.Object javax.xml.bind.ServiceLoaderUtil.lookupUsingOSGiServiceLoader(java.lang.String, java.util.logging.Logger)'

Looks like you have a mismatch in used JAXB versions. I can’t determine what versions are being used, but look closer at openhab.tp-jaxb feature and what it ships: https://github.com/openhab/openhab-core/blob/591b16ff35b78f3918373410577998991113e7c0/features/karaf/openhab-tp/src/main/feature/feature.xml#L177

You should compile binding against these versions and declare <feature>openhab.tp-jaxb<feature> as a dependency to your binding feature.

I tried to add that dependency to my feature.xml but I still got same problem.

<?xml version="1.0" encoding="UTF-8"?>
<features name="org.openhab.binding.electroluxair-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
	<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>

	<feature name="openhab-binding-electroluxair" description="ElectroluxAir Binding" version="${project.version}">
		<feature>openhab-runtime-base</feature>
		<feature dependency="true">openhab.tp-jaxb</feature>
		<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.electroluxair/${project.version}</bundle>
	</feature>
</features>

However if I compile the binding cmdline via mvn clean install and then install it in my sandbox running OH4.0.0.M3 the binding works without any issues (even without specifying the dependency)

Running things from Eclipse IDE goes a bit different. You need to double check BNDtools settings and runfiles which should list same versions of above dependencies. These might be out of sync.

1 Like

I now also see that I get this fault when compiling in Eclipse IDE:

The version of JAXB in my appbnd settings seems to match:

runbundles: \
	org.ops4j.pax.logging.pax-logging-api;version='[2.2.0,2.2.1)',\
	org.ops4j.pax.logging.pax-logging-log4j2;version='[2.2.0,2.2.1)',\
	com.fasterxml.jackson.core.jackson-annotations;version='[2.14.1,2.14.2)',\
	com.fasterxml.jackson.core.jackson-core;version='[2.14.1,2.14.2)',\
	com.fasterxml.jackson.core.jackson-databind;version='[2.14.1,2.14.2)',\
	com.fasterxml.jackson.dataformat.jackson-dataformat-yaml;version='[2.14.1,2.14.2)',\
	com.fasterxml.jackson.datatype.jackson-datatype-jsr310;version='[2.14.1,2.14.2)',\
	com.fasterxml.woodstox.woodstox-core;version='[6.4.0,6.4.1)',\
	com.google.gson;version='[2.9.1,2.9.2)',\
	com.google.guava;version='[30.1.0,30.1.1)',\
	com.google.guava.failureaccess;version='[1.0.1,1.0.2)',\
	com.google.inject;version='[5.0.1,5.0.2)',\
	com.sun.jna;version='[5.12.1,5.12.2)',\
	com.sun.xml.bind.jaxb-osgi;version='[2.3.3,2.3.4)',\