Olá,
>> O corpo SOAP possui 10 campos adicionais além do campo de dados XML, e esses campos estão codificados de forma rígida.
Não vejo nenhum problema nisso, no seu código de mapeamento Java que na verdade está criando o objeto no formato SOAP envelope, você pode facilmente ler a saída do primeiro mapeamento de mensagens, convertê-la para o formato base64 (como mostrado abaixo) e adicioná-la dentro do corpo SOAP com outros campos codificados.
Obrigado
Amit Srivastava