[
https://issues.apache.org/jira/browse/CAMEL-12082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16290610#comment-16290610
]
ASF GitHub Bot commented on CAMEL-12082:
----------------------------------------
GitHub user johnpoth opened a pull request:
https://github.com/apache/camel/pull/2146
[CAMEL-12082] Set the TCCL to the application classloader when execut…
…ing local route commands
https://issues.apache.org/jira/browse/CAMEL-12082
This is similar to what's being done in
[AbstractContexCommand](https://github.com/apache/camel/blob/792ce5c5cc0af486b39471cf68206a2e95d3a037/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractContextCommand.java#L63)
and
[DefaultCamelContext](https://github.com/apache/camel/blob/bb39dc44d9603c0e6fce2460ddf35a7b94ca30d4/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java#L3264)
Thanks!
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/johnpoth/camel CAMEL-12082
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/2146.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2146
----
commit 0572728f52a2d546cb7c0208c84108c8556643fe
Author: jpoth <[email protected]>
Date: 2017-12-13T17:00:56Z
[CAMEL-12082] Set the TCCL to the application classloader when executing
local route commands
----
> Camel route commands should set the TCCL when working with local camel context
> ------------------------------------------------------------------------------
>
> Key: CAMEL-12082
> URL: https://issues.apache.org/jira/browse/CAMEL-12082
> Project: Camel
> Issue Type: Bug
> Affects Versions: 2.20.2
> Reporter: John Poth
>
> This causes class not found issues in Karaf when restarting routes for
> example:
> {code}
> 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
> {code}
> I'll push a PR
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)