Como POSTAR usando Java e incluir parâmetros e um corpo de solicitação bruto?

Estou me comunicando com um serviço da web que espera um parâmetro POST e também espera o corpo da Solicitação. Confirmei que tal solicitação POST pode ser feita usando um Console REST que possuo, mas não consigo fazer tal solicitação em Java usando bibliotecas Apache.

No código abaixo, posso POSTAR para o serviço da web e ele recebe corretamente o conteúdo da variável raw_body. Se eu descomentar a primeira das duas linhas comentadas, o serviço da web recebe o parâmetro "fname", mas ele não recebe mais o corpo do POST.

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
...

HttpClient httpClient = new HttpClient();
String urlStr = "http://localhost:8080/MyRestWebService/save";
PostMethod method = new PostMethod(urlStr);
String raw_body = "This is a very long string, much too long to be just another parameter";
RequestEntity re = new StringRequestEntity(raw_body, "text/xml", "UTF-16");
//method.addParameter("fname", "test.txt");
//httpClient.getParams().setParameter("fname", "test.txt");
method.setRequestEntity(re);

Como posso transmitir o parâmetro e o corpo?

questionAnswers(2)

yourAnswerToTheQuestion