org.apache.camel.runtimecameleexception-未找到标记为传播“强制”的事务的现有事务

ht4b089n  于 2021-07-16  发布在  Java
关注(0)|答案(0)|浏览(204)

我在一个springboot应用程序中开发了两个camel路由。first route read xml消息使用jaxb进行转换,处理json数据并将其发送到endrouteuri。

  1. from(strartingRouteUri)
  2. .id("startRoute")
  3. .autoStartup(autoStartup)
  4. .errorHandler(errorHandler())
  5. .transacted("PROPAGATION_MANDATORY")
  6. .unmarshal(getJaxB())
  7. .convertBodyTo(SomeModel.class)
  8. .setExchangePattern(ExchangePattern.InOnly)
  9. .bean(modelMapper)
  10. .bean(processingService, "process")
  11. .marshal(createGsonDataFormat())
  12. .multicast()
  13. .to(endRouteUri).id(endRouteQueueName)
  14. .end()
  15. .end()
  16. .end();

从endrouteuri读取的第二条路径

  1. from(endRouteUri)
  2. .id("secondRoute")
  3. .autoStartup(autoStartup)
  4. .onException(Exception.class)
  5. .id("errorHandler")
  6. .log( LoggingLevel.INFO,"${exception.stacktrace}")
  7. .end()
  8. .transacted("PROPAGATION_MANDATORY")
  9. .unmarshal(createGsonDataFormat())
  10. .setExchangePattern(ExchangePattern.InOnly)
  11. .bean("mapper", "mapToModel")
  12. .bean( "processor")
  13. .end()
  14. .end();

问题发生在第二个路由中,当它尝试从endrouteuri读取时,下面是堆栈跟踪

  1. [org.apache.camel.RuntimeCamelException - org.springframework.transaction.IllegalTransactionStateException: No existing transaction found for transaction marked with propagation 'mandatory']
  2. org.apache.camel.RuntimeCamelException: org.springframework.transaction.IllegalTransactionStateException: No existing transaction found for transaction marked with propagation 'mandatory'

我认为这是造成传播的问题,在这两个路线,我应该如何定义这一点?我需要对两个路由分别实现错误处理和回滚策略

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题