thanks for the hints

i tried below code to get PlatformTransactionManager  instance from spring
boot context
but it failed with below exceptions. do i need more configurations for
getting the instance of PlatformTransactionManager  ?




    @Resource
    private PlatformTransactionManager transactionManager;

APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method webMvcMetricsFilter in
org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration
required a bean of type
'org.springframework.transaction.PlatformTransactionManager' that could not
be found.
        - Bean method 'transactionManager' not loaded because
@ConditionalOnClass did not find required class
'com.atomikos.icatch.jta.UserTransactionManager'
        - Bean method 'transactionManager' not loaded because
@ConditionalOnClass did not find required class
'bitronix.tm.jndi.BitronixContext'
        - Bean method 'transactionManager' not loaded because
@ConditionalOnJndi JNDI environment is not available
        - Bean method 'transactionManager' not loaded because
@ConditionalOnClass did not find required classes
'com.arjuna.ats.jta.UserTransaction',
'org.jboss.tm.XAResourceRecoveryRegistry'

---------- Forwarded message ---------
From: Wang Yan <wyan...@gmail.com>
Date: Thu, Mar 7, 2019 at 9:46 PM
Subject: I could not use .transacted() in camel route with SpringBoot, got
exception
To: <users@camel.apache.org>



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