Exception attempting to get original in message in apache camel

21 views Asked by At

I'm trying to get the original message in my camel exception handler. I'm trying to call exchange.getUnitOfWork().getOriginalInMessage() but getting the following exception

java.lang.IllegalStateException: AllowUseOriginalMessage is disabled. Cannot access the original message.
    at org.apache.camel.impl.engine.DefaultUnitOfWork.getOriginalInMessage(DefaultUnitOfWork.java:307)

How can I enable the AllowUseOriginalMessage functionality?

1

There are 1 answers

0
lance-java On

This can be enabled via CamelContext.setAllowUseOriginalMessage(Boolean)

eg:

@Bean
public CamelContext camelContext(ApplicationContext applicationContext, List<RoutesBuilder> routeBuilders) throws Exception {
    SpringCamelContext context = new SpringCamelContext(applicationContext);
    context.setAllowUseOriginalMessage(true);
    for (RoutesBuilder routeBuilder : routeBuilders) {
        context.addRoutes(routeBuilder);
    }   
    ...
    return context;
}

@Bean
public RoutesBuilder camelRoutes(...) {
   return new RouteBuilder() {
      @Override
      public void configure() { ... }
   }
}

See RuntimeConfiguration.setAllowUseOriginalMessage(java.lang.Boolean)