Hi

You need to setup all that JTA transaction stuff.
jbang is not support doing this out of the box.


On Mon, Aug 26, 2024 at 8:01 AM Zheng Feng <zf...@redhat.com> wrote:

> Hi,
>
> I add "transacted()" in the foo.java like
>
> public class foo extends RouteBuilder {
>
>     @Override
>     public void configure() throws Exception {
>         from("timer:java?period=1000")
>             .transacted()
>             .setBody()
>                 .simple("Hello Camel from ${routeId}")
>             .log("${body}");
>     }
> }
>
> But it is failed with running by "camel run foo.java"
>
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> route1 at: >>> Transacted <<< in route:
> Route(route1)[From[timer:java?period=1000] -> [Transacted]] because of
> policy must be specified on:
> org.apache.camel.reifier.TransactedReifier@6b2dd3df
> at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:235)
> at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86)
> at
>
> org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
> at
>
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:720)
> at
>
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:587)
> at
>
> org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2390)
> at org.apache.camel.support.service.BaseService.init(BaseService.java:78)
> at
>
> org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2024)
> at org.apache.camel.support.service.BaseService.start(BaseService.java:105)
> at
>
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2043)
> at
>
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
> at org.apache.camel.main.KameletMain.doStart(KameletMain.java:364)
> at org.apache.camel.support.service.BaseService.start(BaseService.java:113)
> at
> org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1336)
> at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:873)
> at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:320)
> at
>
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
> at
>
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
> at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
> at picocli.CommandLine.access$1500(CommandLine.java:148)
> at
>
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
> at
>
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
> at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
> at picocli.CommandLine.execute(CommandLine.java:2174)
> at
>
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:168)
> at
>
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:61)
> at main.CamelJBang.main(CamelJBang.java:36)
> Caused by: java.lang.IllegalArgumentException: policy must be specified on:
> org.apache.camel.reifier.TransactedReifier@6b2dd3df
> at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:188)
> at
>
> org.apache.camel.reifier.TransactedReifier.createProcessor(TransactedReifier.java:41)
> at
>
> org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:886)
> at
>
> org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:622)
> at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:231)
> ... 28 more
>
> I used the Camel JBang 4.7.0 and also try to run with "--deps=camel-jta"
> and "--runtime=quarkus", but none of them worked.  Is there anything I
> missed?
>


-- 
Claus Ibsen
-----------------
@davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to