Don't think you need the "body." in the mapping. IIRC the ESB message body map is the implicit start point of the mapping's value lookup so:
<mapping esb="esbVar" bpm="bpmVar" />
Equates (very roughly) to:
processInstance.getContextInstance().setVariable("bpmVar", message.getBody().get("esbVar"));