Estou tentando acessar um serviço web com JAX-WS usando:
Dispatch<Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
System.out.println(sourceToXMLString(result));
Onde:
private static String sourceToXMLString(Source result)
throws TransformerConfigurationException, TransformerException {
String xmlResult = null;
try {
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, yes);
transformer.setOutputProperty(OutputKeys.METHOD, xml);
transformer.setOutputProperty(OutputKeys.ENCODING, utf-8);
OutputStream out = new ByteArrayOutputStream();
StreamResult streamResult = new StreamResult();
streamResult.setOutputStream(out);
transformer.transform(result, streamResult);
xmlResult = streamResult.getOutputStream().toString();
} catch (TransformerException e) {
e.printStackTrace();
}
return xmlResult;
}
Quando eu imprimir o resultado em uma página utf-8 caracteres utf-8 não são exibidos corretamente.
Desde o WS funciona bem com outras ferramentas (retorna UTF-8 multa), que tendem a pensar que há algum problema com a minha transformação sourceToXMLString () . Este poderia ser destruindo minha codificação?