Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-12082

Camel route commands should set the TCCL when working with local camel context

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.20.1
    • Fix Version/s: 2.20.2, 2.21.0
    • Component/s: None
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      This causes class not found issues in Karaf when restarting routes for example:

      13:33:50.734 WARN [pipe-camel:route-start websocket camel-context] unavailable
      java.lang.RuntimeException: Unable to load org.eclipse.jetty.websocket.server.WebSocketServerFactory
      	at org.eclipse.jetty.websocket.servlet.WebSocketServletFactory$Loader.load(WebSocketServletFactory.java:53) ~[?:?]
      	at org.eclipse.jetty.websocket.servlet.WebSocketServlet.init(WebSocketServlet.java:138) ~[?:?]
      	at javax.servlet.GenericServlet.init(GenericServlet.java:244) ~[34:javax.servlet-api:3.1.0]
      	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:640) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:419) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:892) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:1596) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1684) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletHandler.addServletWithMapping(ServletHandler.java:1027) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.eclipse.jetty.servlet.ServletContextHandler.addServlet(ServletContextHandler.java:437) [241:org.eclipse.jetty.servlet:9.3.15.v20161220]
      	at org.apache.camel.component.websocket.WebsocketComponent.createServlet(WebsocketComponent.java:457) [226:org.apache.camel.camel-websocket:2.21.0]
      	at org.apache.camel.component.websocket.WebsocketComponent.addServlet(WebsocketComponent.java:439) [226:org.apache.camel.camel-websocket:2.21.0]
      	at org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:214) [226:org.apache.camel.camel-websocket:2.21.0]
      	at org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123) [226:org.apache.camel.camel-websocket:2.21.0]
      	at org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84) [226:org.apache.camel.camel-websocket:2.21.0]
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.deferStartService(DefaultCamelContext.java:1558) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1475) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1445) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:576) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:168) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:248) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:60) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:104) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:90) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.processor.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1472) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:44) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:31) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:60) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:104) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:90) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.processor.interceptor.DefaultChannel.doStart(DefaultChannel.java:160) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:60) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:104) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:62) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:104) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:90) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.processor.MulticastProcessor.doStart(MulticastProcessor.java:1172) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:60) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:104) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:90) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:80) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.RouteService.startChildService(RouteService.java:370) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:196) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.RouteService.warmUp(RouteService.java:145) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3947) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3854) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3899) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:3753) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1176) [54:org.apache.camel.camel-core:2.21.0]
      	at org.apache.camel.commands.AbstractLocalCamelController.startRoute(AbstractLocalCamelController.java:341) [53:org.apache.camel.camel-commands-core:2.21.0]
      	at org.apache.camel.commands.RouteStartCommand.executeOnRoute(RouteStartCommand.java:32) [53:org.apache.camel.camel-commands-core:2.21.0]
      	at org.apache.camel.commands.AbstractRouteCommand.execute(AbstractRouteCommand.java:56) [53:org.apache.camel.camel-commands-core:2.21.0]
      	at org.apache.camel.karaf.commands.RouteStart.execute(RouteStart.java:30) [67:org.apache.camel.karaf.camel-karaf-commands:2.21.0]
      	at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) [144:org.apache.karaf.shell.core:4.2.0]
      	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) [144:org.apache.karaf.shell.core:4.2.0]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
      	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) [?:?]
      Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.server.WebSocketServerFactory
      	at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:?]
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:?]
      	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:?]
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
      	at java.lang.Class.forName0(Native Method) ~[?:?]
      	at java.lang.Class.forName(Class.java:348) ~[?:?]
      	at org.eclipse.jetty.websocket.servlet.WebSocketServletFactory$Loader.load(WebSocketServletFactory.java:47) ~[?:?]
      	... 76 more
      

      I'll push a PR

        Attachments

          Activity

            People

            • Assignee:
              jpoth John Poth
              Reporter:
              jpoth John Poth
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: