Hi, I use Camel 2.2 on SMX4.2 with Spring. I have created a route calling a camel bean POJO exposed as a Spring DM service. Everything works fine, no error is returned but my data are not saved in the DB.
Config : Route public void configure() throws Exception { onException(Exception.class).log(">> Exception raised !!"); /** * Route persisting objects in DB */ from(queueValidatedUri) .beanRef("sapPersistence", "save") // Reference of camel pojo bean exposed as a OSGI Service .log(">>> Message saved in the DB : ${id}") // This message appears well into the console .to(queueOutUri); } Config : Spring config file of camel <osgi:reference id="sapPersistence" interface="com.goodyear.emea.gicl.esb.service.Persistence"/> Config : Camel POJO Bean import org.apache.camel.Body; import org.apache.camel.Exchange; import org.springframework.transaction.annotation.Transactional; @Transactional // Spring Annotation used to add Transactional Aspect public class PersistenceImpl implements Persistence { private SapDocumentDAO sapDocumentDAO; @Transactional public void save(@Body FinishedTireDocument finishedTiredDocument, Exchange ecxh) { getSapDocumentDAO().save(finishedTiredDocument); } public SapDocumentDAO getSapDocumentDAO() { return sapDocumentDAO; } public void setSapDocumentDAO(SapDocumentDAO sapDocumentDAO) { this.sapDocumentDAO = sapDocumentDAO; } } Camel Spring Config <tx:annotation-driven transaction-manager="txManager" /> <osgi:reference id="txManager" interface="org.springframework.transaction.PlatformTransactionManager" /> <bean id="sapService" class="com.goodyear.emea.gicl.esb.service.impl.PersistenceImpl"> <property name="sapDocumentDAO"> <osgi:reference interface="com.goodyear.emea.gicl.esb.persistence.SapDocumentDAO" /> </property> </bean> <osgi:service ref="sapService" interface="com.goodyear.emea.gicl.esb.service.Persistence" /> In the log, I see the eclipselink trace with "select statement" [EL Fine]: 2010-05-06 17:15:31.64--ServerSession(20460988)--Connection(15257539)--Thread(Thread[Defa ultMessageListenerContainer-1,5,spring-osgi-extender[26807f]-threads])--SELECT CMP_CODE, CMP_TYPE FR OM TB_COMPOUND WHERE (CMP_CODE = ?) bind => [SPEC-LU-MCFB883] but no insert when getJpaTemplate().persist() is called. I think that the issue is related to Transaction but don't know how to solve it ? Kind regards, Charles Moulliard Senior Enterprise Architect (J2EE, .NET, SOA) Apache Camel Committer ******************************************************************* - Blog : http://cmoulliard.blogspot.com - Twitter : http://twitter.com/cmoulliard - Linkedlin : http://www.linkedin.com/in/charlesmoulliard