The transacted DSL is built on top of Spring PlatformTransactionManager. If you want to use the transacted with Spring Boot, you need to make sure you can get PlatformTransactionManager from the application context.
Willem Jiang Twitter: willemjiang Weibo: 姜宁willem On Fri, Mar 8, 2019 at 4:46 AM Wang Yan <wyan...@gmail.com> wrote: > > I could not use .transacted() in camel route with SpringBoot, got exception > No bean could be found in the registry of type: PlatformTransactionManager" > Is it expected behavior for SpringBoot+Camel setup? > > below is example of the code > > https://github.com/apache/camel/blob/master/components/camel-spring/src/test/java/org/apache/camel/spring/processor/JavaDslTransactedNoTXManagerTest.java > > > > public class JavaDslTransactedNoTXManagerTest extends ContextTestSupport { > @Test > public void testTransactedNoTXManager() throws Exception { > context.addRoutes(new RouteBuilder() { > @Override > public void configure() throws Exception { > from("direct:start") > .transacted() > .to("mock:result"); > } > }); > try { > context.start(); > fail("Should have thrown an exception"); > } catch (FailedToCreateRouteException e) { > NoSuchBeanException cause = assertIsInstanceOf(NoSuchBeanException.class, e. > getCause()); > assertEquals("No bean could be found in the registry of type: > PlatformTransactionManager", cause.getMessage()); > } > } > @Override > public boolean isUseRouteBuilder() { > return false; > } > }