My message flow goes from a JMS listener to service activators going through unmarshaller transformer, splitter and routers. Everything is synchronous.

What is the best way to handler errors in unmarshalling, service activator, etc ? I would like have both message and runtime exception to log the problem or at least process it differently than normal.

How should I handle errors?
  • A channel interceptor? (it doesn't seem to be called on errors)
  • A no-op transformer ?
  • A JMS listener hook?