[
https://issues.apache.org/jira/browse/CAMEL-8783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14731874#comment-14731874
]
Claus Ibsen commented on CAMEL-8783:
------------------------------------
Okay tracked this down to when using ==> style then the Camel routes it builds
do not get prepared which is the process that setup transactions and whatnot.
If you use the java style then this happens as its just java based.
> Transacted not working correctly in scala
> -----------------------------------------
>
> Key: CAMEL-8783
> URL: https://issues.apache.org/jira/browse/CAMEL-8783
> Project: Camel
> Issue Type: Bug
> Components: camel-scala
> Affects Versions: 2.15.2
> Reporter: François LAROCHE
> Assignee: Willem Jiang
> Fix For: 2.14.3, 2.15.3, 2.16.0
>
>
> When I try to use transacted in a scala route, I get an error and the camel
> context doesn't start.
> The error states that there is no output in route.
> After some time watching at the code with different breakpoints, I noticed :
> In org.apache.camel.scala.dsl.builder.RouteBuilder (l199) the transacted with
> URI doesn't call the stack.top.transacted with the URI parameter.
> Even with this done, it still gives the same error :
> "Route myRoute has no output processors. You need to add outputs to the route
> such as to("log:foo")."
> even when my route is as simple as :
> "direct:something" ==> {
> routeId("log:foo")
> transacted("SomeStrategy")
> --> ("log:foo")
> }
> After some more debug, I saw that the output list for the transacted node
> stays empty, so my guess is that, in the
> org.apache.camel.scala.dsl.SAbstractDefinition class, the line def
> transacted(ref: String) = wrap(target.transacted(ref)) should return
> something else to handle outputs.
> Since I can mix java and scala routes, there are workarounds, but still, now
> that I've gotten used to scala routes, I don't really want to go back to java
> routes ;)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)