Erro ao receber mensagem XML: An error occurred when parsing the incoming document: Invalid character in the given encoding.
quarta-feira, 21 de julho de 2010
|
|
Mais um erro pra ficar documentado e nunca mais esquecer.. hehehe
Causa:
Ao receber a seguinte mensagem com caracteres especiais:
Isso acontece porque a mensagem em xml nao tem uma declaração de enconding, obrigando Biztalk a usar o enconding padrão, que é o utf-16, o qual não aceita esses tipos de caracteres.
Solução:
Para resolver basta colocar a declaração implicita do enconding Windows-1252
Confesso que a solução foi mais simples do que eu esperava, pois nos casos de Flat File, temos que setar a propriedade Code Page do schema como Western-European, como foi postado neste artigo.
Para alterar o enconding das mensagens XMLs que estão sendo enviadas, é necessário criar um pipeline, e no XML Assemble ou no Flat File Assemble, alterar a propriedade “Target charset”.
Parece um erro bobo e sem importancia, mas gastei um bom tempo achando a solução. :(
Se evitar a perda de tempo de outra pessoa, já fico feliz!
Até a próxima!
Causa:
Ao receber a seguinte mensagem com caracteres especiais:
<ns0:COLABORADOR xmlns:ns0="http://ComplexTableLooping.schemas.schAdmissao"> <ns0:MATRICULA>123456</ns0:MATRICULA> <ns0:NOME>José Antonio</ns0:NOME> <ns0:NOME_COMPLETO>José Antonio Silva Filho</ns0:NOME_COMPLETO> <ns0:NOME_PAI>José Antonio Silva</ns0:NOME_PAI> <ns0:NOME_MAE>Maria da Silva</ns0:NOME_MAE> <ns0:ENDERECO>çóíéúáòãì,...;:;;/???}}]]{{==++--)))*¨$%#@!³²''</ns0:ENDERECO> <ns0:MUNIC_END>Cubatão</ns0:MUNIC_END> </ns0:COLABORADOR>
Isso acontece porque a mensagem em xml nao tem uma declaração de enconding, obrigando Biztalk a usar o enconding padrão, que é o utf-16, o qual não aceita esses tipos de caracteres.
Solução:
Para resolver basta colocar a declaração implicita do enconding Windows-1252
<?xml version="1.0" encoding="Windows-1252"?> <ns0:COLABORADOR xmlns:ns0="http://ComplexTableLooping.schemas.schAdmissao"> <ns0:MATRICULA>123456</ns0:MATRICULA> <ns0:NOME>José Antonio</ns0:NOME> <ns0:NOME_COMPLETO>José Antonio Silva Filho</ns0:NOME_COMPLETO> <ns0:NOME_PAI>José Antonio Silva</ns0:NOME_PAI> <ns0:NOME_MAE>Maria da Silva</ns0:NOME_MAE> <ns0:ENDERECO>çóíéúáòãì,...;:;;/???}}]]{{==++--)))*¨$%#@!³²''</ns0:ENDERECO> <ns0:MUNIC_END>Cubatão</ns0:MUNIC_END> </ns0:COLABORADOR>
Confesso que a solução foi mais simples do que eu esperava, pois nos casos de Flat File, temos que setar a propriedade Code Page do schema como Western-European, como foi postado neste artigo.
Para alterar o enconding das mensagens XMLs que estão sendo enviadas, é necessário criar um pipeline, e no XML Assemble ou no Flat File Assemble, alterar a propriedade “Target charset”.
Parece um erro bobo e sem importancia, mas gastei um bom tempo achando a solução. :(
Se evitar a perda de tempo de outra pessoa, já fico feliz!
Até a próxima!
1 Comentário:
hahaa! agora sim!!
valeu gente
Postar um comentário