Erro ao receber uma String no XFIRE, WebService Client
8 respostas
Pedrosa
Tenho o seguinte caso estou trafegando Strings xml por webservice, consegui reduzir bruscamente o tamanho dessas Strings através do Xtream com referencias porém a String continua grande consegui então comprimi essa String reduzindo mais ainda o tamanho porém o Client gera uma exceção.
return new String(new ManipulaStringZip().[b]compress/b, “ISO-8859-1”);
talvez porque você esteja tentando descomprimir comprimindo :?:
Pedrosa
Postei errado o certo é decompress mesmo!, mas causa o mesmo erro, qualquer coisa que chegue no cliente com esse charset causa a Exception!
Pedrosa
Qualquer charset que eu passe para o Client do XFire ele causa a exceção, a questão é quando eu comprimo os dados esse método retorma um array de bytes, mas não posso passar esse tipo, sendo assim uso a Classe String para transformar esse array em String passando o charset:
Voce gerou um cliente de WS com o xfire, quer enviar através dele uma String. Essa string foi comprimida, transformada em um array de bytes e atraves disso vc tenta construir uma nova String usando String(byte[],charset) para enviar pelo cliente.
O erro da na hora que voce tenta enviar essa string montada a partir da compressao de uma outra string… é isso?
Pedrosa
É na verdade eu gerei um serviço no server para ser consumido no client, e fazendo um outro teste pelo NetBeans que por sinal simplifica em muito na hora de trabalhar com ws, gera um erro semelhante.
F
felipecruz
Voce consegue transportar uma string “normal” tipo “teste” ou tambem da erro?
Pedrosa
A comunicação com Strings normais funciona perfeitamente, porem quando eu mando minha string comprimida gera o erro pois a mesma contém diversos caracters especias representando os bytes comprimidos.
F
felipecruz
Você já pesquisou alguma coisa sobre o Xfire comprimir os dados que trafegam ao invés de você mesmo ter que comprimi-los na mão? ou declarar os dados como um “stream” mesmo ao invés de string, seria como se vc tivesse trafegando um arquivo zipado que na verdade é um arquivo texto…
porque uma string não é a mesma coisa que algo binário… e a partir do momento em que voce comprime voce tem dados binários e nao mais texto plano