Bom antes de tudo vou resumir … eu simplesmente quero converter minha string para UTF-8 … agora eu vou dizer o que eu já fiz:
Nosso WebService utiliza XFire, verificamos que a msg SOAP que chega até ele está vindo na codificações correta o problema é depois que ela é absorvida pelo Xfire.
De alguma forma o Xfire está modificando os conteúdos que estão no XML do soap e os transformando para a codificação Cp1252.
O mais estranho que ao recebermos estes conteúdos e forçarmos a conveção para UTF-8 … a msg toma o padrão US-ASCII … ??? … algum erro abaixo?
byte[] bytes = msg.getMessage();
String newStr = new String(bytes, "UTF-8");
msg.setMessage(newStr.getBytes());
Debugando o Xfire, foi visto que antes da linha 297 do XFireServletController, o request.getInputStream() vem com a codificação correta … e gera o arquivo desejado …
[code] XMLStreamReader reader = //linha297
STAXUtils.createXMLStreamReader(request.getInputStream(),
charEncoding,
context);
InMessage message = new InMessage(reader, request.getRequestURI());
message.setProperty(SoapConstants.SOAP_ACTION, soapAction);
channel.receive(context, message);[/code]
mas depois que é executada a linha 298 (STAXUtils.createXMLStreamReader) … o xml está sofrendo alguma alteração de codificação.
Serio … alguém tem alguma idéia ai? … ou já viu algo assim?
