Olá pessoal,
estou desenvolvendo 2 serviços em um web service usando Vraptor 3. E este usa Xstream.
Quando faço a chamada a um dos serviços dá erro. No browser aparece:
Erro no processamento de XML: referência para um número de caractere inválido
Posição: http://127.0.0.1:8087/nome_webservice/info_request?request.clientCode=brasil
Número da linha 82, coluna 27: Rua Jos� Machado Filho 10
o erro ocorre no Firefox, no IE não dá erro mas onde tem acento entra um caracter estranho.
Pelo firebug peguei a saída do xml montado.
Rua Jos Machado Filho 10Pesquisei na web e vi soluções onde varriam o xml e trocavam caracteres com acento. Mas isto exige mais processamento. Eu gostaria de manter os acentos.
Vi num outro tópico aqui do fórum sobre criar a classe CustomXMLSerialization, que é extensão de uma classe para serialização do Vraptor.
Pesquisando mais vi que poderia ser problema de codificação. Os acentos estão na codificação latina ISO-8859-1.
Troquei nesta classe CustomXMLSerialization
protected XStream getXStream() {
XStream xStream = new XStream(new DomDriver("UTF-8"));
por
protected XStream getXStream() {
XStream xStream = new XStream(new DomDriver("ISO-8859-1"));
mas no xml montado continua aparecendo UTF-8 no cabeçalho.
Tentei também trocar o UTF-8 por ISO-8859-1 via edição de arquivo xml, por um editor de texto. Mas dá o erro mostrado no browser.
Alguém sabe o que devo fazer / já passou por isto ?
Muito obrigado
asdias