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

Camel-Ribbon: add a Karaf feature

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Minor
    • Resolution: Won't Fix
    • Affects Version/s: 2.20.2
    • Fix Version/s: None
    • Component/s: camel-ribbon
    • Labels:
      None
    • Environment:

      Karaf 4.1.4
      Camel 2.20.2
      Win 10
      Oracle Java 1.8.0_161

    • Estimated Complexity:
      Unknown

      Description

      I'm trying to use ribbon load balancer in Karaf like this:

              from("timer:consumerTimer?fixedRate=true&delay=0&period=10000")
                      .routeId("consumeService")
                      .setBody(simple("Hello, Producer! This is message from consumer on ${camelId}/${routeId}"))
                      .serviceCall()
                          .name("producer")
                          .component("netty4:tcp")
                          .ribbonLoadBalancer()
                          .consulServiceDiscovery()
                          .endParent()
                      .convertBodyTo(String.class)
                      .log("Producer response: ${body}");
      

      But after start my bundle, following error appear in log (log:display):

      2018-02-06 10:53:24,289 | ERROR | nt Dispatcher: 1 | BlueprintCamelContext            | 36 - org.apache.camel.camel-blueprint - 2.20.2 | Error occurred during starting Camel Context  consumer-context
      org.apache.camel.FailedToCreateRouteException: Failed to create route consumeService at: >>> ServiceCall[producer] <<< in route: Route(consumeService)[[From[timer:consumerTimer?fixedRate=tr... because of Could not find factory class for resource: META-INF/services/org/apache/camel/cloud/ribbon-service-load-balancer
              at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1298) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:204) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1148) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3727) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3441) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:208) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3245) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3268) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3245) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3168) [39:org.apache.camel.camel-core:2.20.2]
              at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:244) [36:org.apache.camel.camel-blueprint:2.20.2]
              at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:284) [36:org.apache.camel.camel-blueprint:2.20.2]
              at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177) [36:org.apache.camel.camel-blueprint:2.20.2]
              at org.apache.aries.blueprint.container.BlueprintEventDispatcher$4.call(BlueprintEventDispatcher.java:201) [28:org.apache.aries.blueprint.core:1.8.3]
              at org.apache.aries.blueprint.container.BlueprintEventDispatcher$4.call(BlueprintEventDispatcher.java:199) [28:org.apache.aries.blueprint.core:1.8.3]
              at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
              at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
              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:1149) [?:?]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
              at java.lang.Thread.run(Thread.java:748) [?:?]
      Caused by: org.apache.camel.NoFactoryAvailableException: Could not find factory class for resource: META-INF/services/org/apache/camel/cloud/ribbon-service-load-balancer
              at org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration.newInstance(ServiceCallServiceLoadBalancerConfiguration.java:149) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.lambda$retrieveLoadBalancer$22(ServiceCallDefinition.java:1036) ~[?:?]
              at org.apache.camel.util.function.Suppliers.firstNotNull(Suppliers.java:72) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.retrieveLoadBalancer(ServiceCallDefinition.java:1035) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.createProcessor(ServiceCallDefinition.java:759) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:549) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:510) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:226) ~[?:?]
              at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1295) ~[?:?]
              ... 26 more
      Caused by: org.apache.camel.NoFactoryAvailableException: Could not find factory class for resource: nullribbon-service-load-balancer
              at org.apache.camel.core.osgi.OsgiFactoryFinder.lambda$findClass$0(OsgiFactoryFinder.java:72) ~[?:?]
              at org.apache.camel.impl.DefaultFactoryFinder.lambda$addToClassMap$1(DefaultFactoryFinder.java:165) ~[?:?]
              at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:?]
              at org.apache.camel.impl.DefaultFactoryFinder.addToClassMap(DefaultFactoryFinder.java:163) ~[?:?]
              at org.apache.camel.core.osgi.OsgiFactoryFinder.findClass(OsgiFactoryFinder.java:51) ~[?:?]
              at org.apache.camel.core.osgi.OsgiFactoryFinder.findClass(OsgiFactoryFinder.java:79) ~[?:?]
              at org.apache.camel.impl.DefaultFactoryFinder.findClass(DefaultFactoryFinder.java:74) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration.newInstance(ServiceCallServiceLoadBalancerConfiguration.java:147) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.lambda$retrieveLoadBalancer$22(ServiceCallDefinition.java:1036) ~[?:?]
              at org.apache.camel.util.function.Suppliers.firstNotNull(Suppliers.java:72) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.retrieveLoadBalancer(ServiceCallDefinition.java:1035) ~[?:?]
              at org.apache.camel.model.cloud.ServiceCallDefinition.createProcessor(ServiceCallDefinition.java:759) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:549) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:510) ~[?:?]
              at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:226) ~[?:?]
              at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1295) ~[?:?]
              ... 26 more
      

      And there is no feature named camel-ribbon in camel feature repository:

      karaf@root()> feature:repo-list | grep camel
      camel-2.20.2                      | mvn:org.apache.camel.karaf/apache-camel/2.20.2/xml/features
      karaf@root()> feature:install camel-ribbon
      Error executing command: No matching features for camel-ribbon/0.0.0
      

        Attachments

          Activity

            People

            • Assignee:
              acosentino Andrea Cosentino
              Reporter:
              Vadim R Vadim R
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: