I currenty migrating an application from Karaf 3 to Karaf 4.3.1. I cannot
get it running.
I guess the problem is related to a servlet that has web socket support
I found out that I have two versions of Jetty in my application:
karaf@root()> feature:list -i |grep -i jetty
jetty | 9.4.38.v20210224 | | Started |
standard-4.3.1 | Transition feature for backward compatibility
pax-jetty | 9.2.21.v20170120 | | Started |
org.ops4j.pax.web-4.3.1 | Provide Jetty engine support
cxf-http-jetty | 3.4.3 | | Started | cxf-3.4.3
|
pax-jetty | 9.4.38.v20210224 | | Started |
org.ops4j.pax.web-7.3.13 | Provide Jetty engine support
pax-http-jetty | 7.3.13 | | Started |
org.ops4j.pax.web-7.3.13 |
I stripped down the list of boot features and found out that the
http-feature installs the two jetty versions.
I read already this thread
http://karaf.922171.n3.nabble.com/Two-versions-of-jetty-td4055919.html, but
think it it not releated to my problem.
Is this normal that two versions of Jetty are active?
Here is the part of the log file that shows the exception:
2021-04-23T09:18:50,199 | INFO | features-3-thread-1 | FeaturesServiceImpl
| 16 - org.apache.karaf.features.core - 4.3.1 |
org.eclipse.jetty.websocket.servlet/9.4.38.v20210224
2021-04-23T09:18:50,199 | INFO | features-3-thread-1 | FeaturesServiceImpl
| 16 - org.apache.karaf.features.core - 4.3.1 |
org.eclipse.jetty.websocket.server/9.2.21.v20170120
2021-04-23T09:18:50,199 | ERROR | features-3-thread-1 | Felix
| 3 - org.ops4j.pax.logging.pax-logging-api - 2.0.8 | Bundle
org.apache.aries.spifly.dynamic.bundle [44] EventDispatcher: Error during
dispatch. (java.lang.NoClassDefFoundError:
org/eclipse/jetty/websocket/common/SessionListener)
java.lang.NoClassDefFoundError:
org/eclipse/jetty/websocket/common/SessionListener
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_202]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_202]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2312)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClassParallel(BundleWiringImpl.java:2130)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2064)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1533)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950)
~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_202]
at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:2089) ~[?:?]
at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)
~[?:?]
at
org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:143)
~[?:?]
at
org.apache.aries.spifly.ProviderBundleTrackerCustomizer.addingBundle(ProviderBundleTrackerCustomizer.java:64)
~[?:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:475)
~[osgi.core-7.0.0.jar:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:420)
~[osgi.core-7.0.0.jar:?]
at
org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
~[osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
~[osgi.core-7.0.0.jar:?]
at
org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
~[osgi.core-7.0.0.jar:?]
at
org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
~[?:?]
at
org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
~[?:?]
at
org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
~[?:?]
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) ~[?:?]
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2393) ~[?:?]
at org.apache.felix.framework.Felix.startBundle(Felix.java:2308) ~[?:?]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) ~[?:?]
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) ~[?:?]
at
org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1160)
~[?:?]
at
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1041)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069)
~[?:?]
at
org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004)
~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_202]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_202]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
Caused by: java.lang.ClassNotFoundException:
org.eclipse.jetty.websocket.common.SessionListener not found by
org.eclipse.jetty.websocket.common [188]
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1565)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950)
~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_202]
at
org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1343)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1586)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1516)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78)
~[?:?]
at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950)
~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_202]
... 35 more
Regards
Richard