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;
> }
> }

Reply via email to