If you're wanting to do some content based routing on the message payload using XPath (i.e. creating a XPath filter type), ensure you have routeOnHeadersOnly set to true (which is set on the routing behaviour <routing routeOnHeadersOnly="True">), if not a FilterInvalidBodyAccessException will be thrown, which has the following message:
A filter has attempted to access the body of a Message. Use a MessageBuffer instead if body filtering is required.
Setting routeOnHeadersOnly to false, the message will be buffered.