Hi Franz,
Camel K is (still) only able to run a flavour of Camel Quarkus runtime
(Camel K Runtime) [1]. No Spring or any other runtime is actually
available. Any bean reference must be done in the Camel Quarkus way. In
next version (2.2.0) we're working in order to allow you to build your
application externally (ie, in a pipeline) and run any other runtime
available in Camel [2]. This is still experimental though, but the goal to
onboard any Camel runtime is in our 2023 roadmap.

Cheers,
Pasquale.

[1]
https://camel.apache.org/camel-k/2.1.x/architecture/runtime.html#runtime-quarkus
[2] https://github.com/apache/camel-k/pull/4831

On Mon, Oct 30, 2023 at 7:59 AM Forsthofer, Franz
<franz.forstho...@sap.com.invalid> wrote:

> Hi,
>
> I am trying out the latest Camel K release 2.1.0. And tried to use a
> camel route of format XML with a Spring bean:
>  <camel>
>    <beans xmlns="http://www.springframework.org/schema/beans";>
>         <bean id="mybean" class="java.lang.String">
>             <constructor-arg index="0" value=" Hello from Bean"/>
>         </bean>
>     </beans>
>   <route>
>     <from uri="direct:hello"/>
>                <transform>
>       <constant>Hello World</constant>
>     </transform>
>                <bean ref="mybean" method="concat" />
>   </route>
> </camel>
>
> On the integration pod I got the error:
>
> ←[39m←[38;5;145m2023-10-30 06:08:17,990←[39m←[38;5;188m
> ←[39m←[38;5;203mERROR←[39m←[38;5;188m
> [←[39m←[38;5;69mio.qua.run.Application←[39m←[38;5;188m]
> (←[39m←[38;5;71mmain←[39m←[38;5;188m) ←[39m←[38
> ;5;151mFailed to start application (with profile [prod])←[39m←[38;5;203m:
> java.lang.RuntimeException: Failed to start quarkus
>         at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
>         at io.quarkus.runtime.Application.start(Application.java:101)
>         at
> io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
>         at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
>         at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
>         at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
>         at io.quarkus.runner.GeneratedMain.main(Unknown Source)
>         at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>         at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>         at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:568)
>         at
> io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:61)
>         at
> io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:32)
> Caused by: java.lang.RuntimeException: java.lang.RuntimeException:
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> route1 at: >>> Bean[ref:mybean method:concat] <<< in route:
> Route(route1)[From[direct:hello] -> [Transform[constant{Hell... because of
> No bean could be found in the registry for: mybean
>         at
> org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:47)
>         at
> io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown
> Source)
>         at
> io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown
> Source)
>         ... 13 more
> Caused by: java.lang.RuntimeException:
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> route1 at: >>> Bean[ref:mybean method:concat] <<< in route:
> Route(route1)[From[direct:he
> llo] -> [Transform[constant{Hell... because of No bean could be found in
> the registry for: mybean
>         at
> org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:65)
>         at
> org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
>         ... 15 more
> Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create
> route route1 at: >>> Bean[ref:mybean method:concat] <<< in route:
> Route(route1)[From[direct:hello] -> [Transform[constant{
> Hell... because of No bean could be found in the registry for: mybean
>         at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:217)
>         at
> org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:76)
>         at
> org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
>         at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:816)
>         at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:685)
>         at
> org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2396)
>         at
> org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:171)
>         at
> org.apache.camel.support.service.BaseService.init(BaseService.java:78)
>         at
> org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2062)
>         at
> org.apache.camel.support.service.BaseService.start(BaseService.java:105)
>         at
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2081)
>         at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:313)
>         at
> org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
>         at
> org.apache.camel.support.service.BaseService.start(BaseService.java:113)
>         at
> org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
>         at
> org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
>         ... 16 more
> Caused by: org.apache.camel.NoSuchBeanException: No bean could be found in
> the registry for: mybean
>         at
> org.apache.camel.component.bean.RegistryBean.doGetBean(RegistryBean.java:134)
>         at
> org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:102)
>         at
> org.apache.camel.component.bean.RegistryBean.createCacheHolder(RegistryBean.java:95)
>         at
> org.apache.camel.component.bean.DefaultBeanProcessorFactory.createBeanProcessor(DefaultBeanProcessorFactory.java:80)
>         at
> org.apache.camel.reifier.BeanReifier.createProcessor(BeanReifier.java:49)
>         at
> org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:853)
>         at
> org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:593)
>         at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:213)
>         ... 31 more
>
> I thought I can use Spring  beans because Camel K 2.1 is based on Camel
> 4.0.0 which allows the embedding of Spring Beans; see
> https://camel.apache.org/components/4.0.x/others/java-xml-io-dsl.html
> Do I have to add some dependencies to make this work?
>
> I also tried Camel XML bean:
> <camel>
>     <bean name="mybean" type="java.lang.String">
>     </bean>
>   <route>
>     <from uri="direct:hello"/>
>         <transform>
>       <constant>Hello World</constant>
>     </transform>
>                <bean ref="mybean" method="concat" />
>   </route>
> </camel>
>
> Again I got the same error.
>
> Regards
>
> Franz
>
>
>

Reply via email to