Pessoal estou com uma dificuldade para tentar fazer o seguinte:
Irei chamar um webservice e ele vai me retornar uma string onde o conteudo dela é um array de bytes que representa um arquivo. Porem esse array vem escrito em forma de straing e quando tento passar para bytes e gerar o arquivo, ele faz bem, mas na hora de abri-lo o conteudo eh o proprio array em forma de string. =/
Você não deve usar a classe String para representar coisas diferentes de Strings. Ou seja, a menos que seu arquivo seja um texto, não use String, trabalhe com bytes diretamente.
Você pode colocar o código de onde vc lê esse array e de onde você grava esse array?
V
vinicius_roc
Mas tem como vim do webservice ja com o tipo byte[]?
F
fredferrao
getBytes() não funciona?
StringumaString="Eu sou uma String";byte[]umByteArray=umaString.getBytes();
V
vinicius_roc
Funciona funciona, mas tipo na string ja esta escrita um Array de bytes, entao quando eu pego ela em bytes e depois mando p o arquivo, ele transforma na string com os bytes novamente, em vez do arquivo
V
ViniGodoy
Ainda está tudo muito abstrato. Não sabemos o conteúdo da String, nem como vc está recebendo e nem como está gravando. Ao invés de nos forçar a adivinhar, tem como postar essas informações para nós?
V
vinicius_roc
tem sim
pega o array que o webservice retornou
byte[]informe=null;InformeRendimentoGetResponseDocumentresponseDocument=InformeRendimentoGetResponseDocument.Factory.newInstance();InformeRendimentoGetRequestDocumentrequestDocument=InformeRendimentoGetRequestDocument.Factory.newInstance();CtInformeRendimentoGetInpesquisa=requestDocument.addNewInformeRendimentoGetRequest();CtPesquisaDatadata=pesquisa.addNewDtData();Intervaloperiodo=data.addNewIntervalo();periodo.setInicio(inicio);periodo.setFim(fim);pesquisa.setIdPrestador(BigInteger.valueOf(id));try{//Chama o WebServiceWebServiceservice=WebServiceProvider.getInstance().getServer("Easy_Informe_Rendimento");WebServiceClientclient=newWebServiceClient(service);Stringresposta=client.callWebService(requestDocument.toString());responseDocument=InformeRendimentoGetResponseDocument.Factory.parse(resposta);//Se contiver erro imprime no logif(responseDocument.getInformeRendimentoGetResponse().getErro()!=null){CtErroerro=responseDocument.getInformeRendimentoGetResponse().getErro();log.error("Codigo erro: "+erro.getCdOcorrencia());log.error("Descrição erro: "+erro.getTxOcorrencia());thrownewServiceException("Erro retornado do WebService");}else{informe=responseDocument.getInformeRendimentoGetResponse().getInformeRendimento().getBytes();}}catch(XmlExceptione){log.error(e.getMessage(),e);thrownewServiceException(e);}returninforme;