Erro ao receber uma String no XFIRE, WebService Client.  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

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.



No meu metodo comprimo dessa forma a String:



No server descomprimo perfeitamente assim:


Porém no Client ao tentar descomprimir assim gera a exceção:




Alguém tem idéia do que pode estar acontecendo?
felipecruz
JavaTeenager

Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline

Pedrosa wrote:
Porém no Client ao tentar descomprimir assim gera a exceção:



Alguém tem idéia do que pode estar acontecendo?


return new String(new ManipulaStringZip().compress(resultado[0].toString()), "ISO-8859-1");

talvez porque você esteja tentando descomprimir comprimindo

loogica - http://blog.loogica.net
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Postei errado o certo é decompress mesmo!, mas causa o mesmo erro, qualquer coisa que chegue no cliente com esse charset causa a Exception!
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

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:



Em uma classe normal para fazer o processo inverso uso:




ManipulaStringZip


Alguma sugestão?

felipecruz
JavaTeenager

Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline

Deixa eu ver se entendi...

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?

loogica - http://blog.loogica.net
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

É 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.

felipecruz
JavaTeenager

Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline

Voce consegue transportar uma string "normal" tipo "teste" ou tambem da erro?

loogica - http://blog.loogica.net
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

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.
felipecruz
JavaTeenager

Membro desde: 18/07/2006 10:25:29
Mensagens: 150
Offline

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

loogica - http://blog.loogica.net
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team