I am testing apache karaf 4.1.0-SNAPSHOT, which in turn uses pax-web 4.4.0.
After starting the feature http-whiteboard and then try to add a servlet, I get the following warnings in the log file (data/log/karaf.log). However, according to the log, the JSR 356 WebSocketServerContainerInitializer should have beed added successfully.
Although this is a WARN instead ERROR message, an application user cannot evaluate the consequence. Thus, in my opinion, this warning should be either fixed or logged in level INFO.
2016-11-22T21:17:06,990 | INFO | Blueprint Extender: 3 | HttpServiceFactoryImpl | 93 - org.ops4j.pax.web.pax-web-runtime - 4.4.0 | Binding bundle: [org.xipki.pki.ca-server [120]] to http service
2016-11-22T21:17:07,013 | INFO | Blueprint Extender: 3 | JettyServerWrapper | 91 - org.ops4j.pax.web.pax-web-jetty - 4.4.0 | will add org.apache.jasper.servlet.JasperInitializer to ServletContainerInitializers
2016-11-22T21:17:07,014 | INFO | Blueprint Extender: 3 | JettyServerWrapper | 91 - org.ops4j.pax.web.pax-web-jetty - 4.4.0 | Skipt org.apache.jasper.servlet.JasperInitializer, because specialized handler will be present
2016-11-22T21:17:07,015 | INFO | Blueprint Extender: 3 | JettyServerWrapper | 91 - org.ops4j.pax.web.pax-web-jetty - 4.4.0 | will add org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer to ServletContainerInitializers
2016-11-22T21:17:07,140 | WARN | Blueprint Extender: 3 | JettyServerWrapper | 91 - org.ops4j.pax.web.pax-web-jetty - 4.4.0 | Failed to find annotated classes for ServletContainerInitializer
java.lang.RuntimeException
at org.objectweb.asm.MethodVisitor.visitTypeAnnotation(Unknown Source) [87:org.objectweb.asm.all:5.0.2]
at org.objectweb.asm.ClassReader.b(Unknown Source) [87:org.objectweb.asm.all:5.0.2]
at org.objectweb.asm.ClassReader.accept(Unknown Source) [87:org.objectweb.asm.all:5.0.2]
at org.objectweb.asm.ClassReader.accept(Unknown Source) [87:org.objectweb.asm.all:5.0.2]
at org.apache.xbean.finder.AbstractFinder.readClassDef(AbstractFinder.java:581) [58:org.apache.xbean.finder:4.1.0]
at org.apache.xbean.finder.BundleAnnotationFinder$AnnotationFindingCallback.foundInDirectory(BundleAnnotationFinder.java:86) [58:org.apache.xbean.finder:4.1.0]
at org.apache.xbean.osgi.bundle.util.BundleResourceFinder.scanDirectory(BundleResourceFinder.java:151) [57:org.apache.xbean.bundleutils:4.1.0]
at org.apache.xbean.osgi.bundle.util.BundleResourceFinder.scanBundleClassPath(BundleResourceFinder.java:120) [57:org.apache.xbean.bundleutils:4.1.0]
at org.apache.xbean.osgi.bundle.util.BundleResourceFinder.find(BundleResourceFinder.java:88) [57:org.apache.xbean.bundleutils:4.1.0]
at org.apache.xbean.finder.BundleAnnotationFinder.<init>(BundleAnnotationFinder.java:56) [58:org.apache.xbean.finder:4.1.0]
at org.apache.xbean.finder.BundleAnnotationFinder.<init>(BundleAnnotationFinder.java:50) [58:org.apache.xbean.finder:4.1.0]
at org.apache.xbean.finder.BundleAnnotationFinder.<init>(BundleAnnotationFinder.java:46) [58:org.apache.xbean.finder:4.1.0]
at org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper.addContext(JettyServerWrapper.java:352) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper.getOrCreateContext(JettyServerWrapper.java:219) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper.getOrCreateContext(JettyServerWrapper.java:199) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.addServlet(JettyServerImpl.java:318) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Started.addServlet(ServerControllerImpl.java:290) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.addServlet(ServerControllerImpl.java:110) [91:org.ops4j.pax.web.pax-web-jetty:4.4.0]
at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:217) [93:org.ops4j.pax.web.pax-web-runtime:4.4.0]
at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:349) [93:org.ops4j.pax.web.pax-web-runtime:4.4.0]
at org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet(HttpServiceProxy.java:465) [93:org.ops4j.pax.web.pax-web-runtime:4.4.0]
at org.ops4j.pax.web.extender.whiteboard.internal.element.ServletWebElement.register(ServletWebElement.java:67) [90:org.ops4j.pax.web.pax-web-extender-whiteboard:4.4.0]
at org.ops4j.pax.web.extender.whiteboard.internal.WebApplication.registerWebElement(WebApplication.java:270) [90:org.ops4j.pax.web.pax-web-extender-whiteboard:4.4.0]
at org.ops4j.pax.web.extender.whiteboard.internal.WebApplication.addWebElement(WebApplication.java:127) [90:org.ops4j.pax.web.pax-web-extender-whiteboard:4.4.0]
at org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker.addingService(AbstractTracker.java:169) [90:org.ops4j.pax.web.pax-web-extender-whiteboard:4.4.0]
at org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker.addingService(AbstractTracker.java:44) [90:org.ops4j.pax.web.pax-web-extender-whiteboard:4.4.0]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) [?:?]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) [?:?]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) [?:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) [?:?]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) [?:?]
at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) [?:?]
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) [?:?]
at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) [?:?]
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557) [?:?]
at org.apache.felix.framework.Felix.registerService(Felix.java:3549) [?:?]
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348) [?:?]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:492) [15:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:193) [15:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:746) [15:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:413) [15:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276) [15:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106) [15:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) [15:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
at java.lang.Thread.run(Thread.java:745) [?:?]
2016-11-22T21:17:07,239 | INFO | Blueprint Extender: 3 | JettyServerWrapper | 91 - org.ops4j.pax.web.pax-web-jetty - 4.4.0 | added ServletContainerInitializer: org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer