Dúvidas em como receber um ByteArray no WebService
10 respostas
J
Jaini
Boa noite pessoal.
Estou com dúvidas ao configurar meu web service para receber um array de bytes do meu android.
do projeto android eu envio :
request.addProperty("file",bytes);
ele vai enviar esse “bytes” para o web service SOAP criado no NetBeans.
Só que não sei como que recebo ele… no caso não sei usar o parametro
um exemplo:
@WebMethod(operationName = "operacao")
public String operacao(@WebParam(name = "file") String file) {
//TODO write your implementation code here:
return null;
}
O que vou retornar? Uma String? Como sei se realmente o arquivo foi recebido? E também… como que recebo ele… Byte? String?
Como que vou montar o arquivo ali para ele identificar que foi recebido?
Não encontro nada que me ajude. Por favor pessoal… preciso de ajuda…
Eu consegui fazer… Só que estou com outro problema.
Eu informo la na minha aplicação android:
Só que no logcat da como null e que não foi encontrado o arquivo ou diretório, e o arquivo está no c: mesmo. Só que está certo, aí quando envio para o meu web service vai o arquivo vazio.
Como faço para solucionar isso?
Obrigada
R
Ramon_Pires
Erro ocorre prq você está passando um path do arquivo no windows(acredito que vc esteja usando uma avd), e não do android, a avd não tem acesso diretamente a arquivos no windows.
Digamos que o seu arquivo esteja no cartão sd:
Filef=newFile("/sdcard/arquivo.pdf");
Você pode transferir arquivos para o avd usando o adt do eclipse.
J
Jaini
Oi Ramon, muito obrigada…
Tive que fazer algumas outras configurações, como permissão, e adicionar umas bibliotecas para acessar o sdcard.
Agora estou pesquisando para fazer o envio desses dados via json, pelo o que li o soap já é baseado em XML, então o envio já está sendo feito por XML.
A questão que eu queria saber se você entende, é que eu vou precisar converter esse arquivo xml para json para aí conseguir mandar para meu servidor?
Obrigada novamente.
R
Ramon_Pires
Se o seu webservice já consome os dados em xml qual seria necessidade de criar um json?
J
Jaini
É que meu TCC é testes destes tipos de transferências.
Meu projeto é criar um ws Soap e fazer envios de arquivos via xml e json, e da mesma forma criar um ws REST e enviar via xml e json.
R
Ramon_Pires
O soap trabalha apenas com xml,logo você têm a limitação quanto ao uso do json ,o maximo que você poderia fazer em um webservice soap seria criar um campo dentro do xml que recebece uma string com o json,mas isso ao meu ver é algo que se torna inviável com o tempo. Já. Quando você utiliza a arquitetura rest, onde de você pode representar um recurso com n formatos, onde os mais comuns são o xml e json,e que também não se limita ao http, você ganha flexibilidade. Exstem algumas bibliotecas que permitem você trabalhar com json e xml no android,se for soap você pode usar o ksoap2, agora se for rest você pode usar gson ,simpleXML. Já. Server side rest você pode usar jersey, resteasy, restlet entre outros. Pelo que já vi você ja começou com o soap,agora é só pesquisar os nomes que eu te passei e ver qual se adapta melhor a sua situação. E lembrando soap é um protocolo e REST é um padrão arquitetural para desenvolvimento de aplicações e webservices.
J
Jaini
Pois é… estou pesquisando em relação ao soap enviar via json e realmente não encontrei nada. E o xml faz parte do protocolo soap né. Em relação ao que comentou sobre criar um campo no xml e inserir o json, na verdade não seria viável para meu projeto, pois os testes são individuais entende? Neste caso ficaria o envio dos dois ao mesmo tempo, só que um dentro do outro. E ficava maaais lento.
Já na arquitetura REST tem mais “liberdade” né… e tem mais materiais também.
Vou iniciar a implementação do REST, acredito que este será menos complicado. rs