Boa tarde pessoall,
Existe alguma maneira de disponibilizar um serviço em jax ws utilizando soap que permita o cliente a fazer o download de algum arquivo localizado no servidor, sem a ajuda de um container web, somente java 6 + jax ws? Se sim como ?
Ajuda com JAX-WS [Resolvido]
4 Respostas
É possível. Não há a necessidade de um conteiner web para usar JAX-WS. Acho que este link pode lhe ajudar http://today.java.net/pub/a/today/2007/07/03/jax-ws-web-services-without-ee-containers.html
[]'s
Obrigado pela resposta Adelar!
Eu já implementei o web service, o meu problema mesmo é disponibilizar um serviço que permita o download de um arquivo, por exemplo:
Eu passo a URI -> http://127.0.0.1/app/servicoFile?wsdl
e o serviço me devolve um arquivo… como se eu tivesse acessando um arquivo em um servidor http.
agora o que eu nao sei é como proceder, se devo alterar o mimetype da resposta soap, como meu método de serviço deverá ficar, qual o tipo de retorno do webmethod, se é um File ou um OutPutStream.
Na verdade eu já fiz esse método, devolvi um array de inteiros, onde em cada posição do array, eu tenho um numero binario, entao o cliente escreve esse array de binário e pronto, eu tenho o arquivo, mas desta maneira que eu fiz ficou muito primitivo, e outro problema que eu tenho com esse método é quando preciso de passar arquivos .tar.gz, eu nao consigo “deserializar” os bytes no cliente,
esse método so funciona com arquivos nao comprimidos. por isso estou nesse dilema … heheheheheh
Valewwww
olá danilo,
nunca tive este problema, mas acho que a forma que você usou é o que geralmente é possível (veja aqui http://stackoverflow.com/questions/866051/how-can-you-pipe-an-outputstream-to-a-streamingdatahandler).
Quanto a passar arquivos tar.gz para cliente só o JAX-WS não vai resolver para você. O que pode ser feito é ele ser descompactado pelo próprio servidor e colocado em um formato mais amigável. Veja o link a seguir, acho que pode lhe ajudar http://www.guj.com.br/java/20291-descompactacao-de-arquivos-com-extensao-targz
[]'s
Obrigado Adelar,
Os links foram de grande valia!
Mas acabei por passar o array de bytes mesmo, e vou deixar o arquivo .TAR, quando eu passava o .tar.gz ele “perdia bytes”, nao sei como, o tamanho do arquivo gz no servidor ficava diferente do arquivo gz no cliente… tipo no servidor tenho um arquivo .tar.gz de 3228 bytes, mas quando crio no cliente esse mesmo arquivo vai para 3005 bytes … hehehehe cansei de tentar resolver, ta me atrasando d+, entao é isso ae … obrigado, valew d+ !!!