Olá a todos,
por acaso alguém teria um exemplo de Web Service que faça Upload / Download de arquivos?
Olá a todos,
por acaso alguém teria um exemplo de Web Service que faça Upload / Download de arquivos?
Veja se isto lhe atende.
http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=jsp3
:okok:
Olá Marcos,
o exemplo q vc me passou permite fazer o upload de arquivos, mas meu problema é fazer isso através de um Web Service.
Já encontrei um exemplo em ASP, mas eu queria um em JAVA.
Ta difícil de encontrar… :sad:
Bem o problema em questão é: afinal quem será o seu cliente, um pda, web ou uma aplicação desktop?
Porque na verdade será o programa cliente que será responsável por obter este arquivo, teu webservice terá que preocupar em apenas pegar este arquivo em um stream e persisti-lo ou fazer alguma operação. Concorda?
:okok:
hum… :roll:
bom primeiro umas perguntas:
tu está desenvolvendo uma aplicação WEB?
o WS é seu, da sua aplicação, ou de outra aplicação que a sua utiliza?
bom não sei se você sabe mas o WS utiliza um protocolo SOAP
de comunicação onde a linguagem é denominada WSDL que nada
mais é que uma definição de estrutura XML para trafegar informação
XML é String
se você for codificar arquivo binário para String fica um tanto grande,
porém é totalmente possível
eu não compreendi, qual a tua real necessidade, o que você está
tentando desenvolver, também não sei como é a sua estrutura
atual do projeto… :roll:
teria como descrever?
acredito que ficará mais facil para poder te ajudar ou mesmo
sugerir algo
abraços
Ok, vou explicar melhor meu problema…
Preciso desenvolver um WS cuja principal função será inserir dados em tabelas de um bando de dados.
Como isso irá funcionar?
A princípio pensei em disponibilizar um método no WS que recebesse como parâmetro um nome de tabela, e um arquivo (.xml) contendo os dados a serem inseridos.
Mais ou menos assim…
insertData( String tableName, File data )
Só q sou iniciante em WS, e pelo q eu sei não posso criar um método que receba tal parâmetro (File). Ou posso?
Bom, conversando com a equipe aqui da minha empresa, foi decidido que os dados a serem inseridos nas tabelas seriam “uploadeados” primeiro, através de um outro método do WS, e só depois (com o arquivo de dados já no servidor) uma aplicação cliente do WS poderia ordenar a inserção de dados.
Isso pra garantir um maior controle de todo o processo. Primeiro tenta-se fazer o upload do arquivo de dados e, se ele for realizado com sucesso, tenta-se fazer a inserção na tabela.
Não sei se confundi ainda mais :lol: , mas é +ou- isso q eu preciso.
Se alguém tiver uma idéia melhor de como realizar este processo, ela será bem-vinda.
Valeu pela ajuda.
Bom, comecei a fazer alguns testes aqui, e acho q resolvi uma parte do meu problema…
Fiz um método
uploadFile( String fileName, byte[] bytes )
que recebe como parâmetro o nome do arquivo (que será armazenado temporariamente no servidor) e um array de bytes.
Fiz isso pra JAVA e funcionou perfeitamente.
Mas a minha preocupação é que outras aplicações (Desenvolvidas em outras linguagens) poderão acessar meu WebService.
E aí vem a dúvida… Existe um equivalente a esse array de bytes para as outras linguagens?
Lembrando que, se por acaso vcs perceberem que eu estou no caminho errado, por favor não deixem de me avisar. :lol:
bom quanto ao suporte por outras linguagem…
partindo do principio que se é possivel para a linguagem enviar
um e-mail anexando um arquivo, então essa linguagem provavelmente
podera interagir sem problemas com o seu WS…
lembrando que o envio de e-mail, um arquivo anexado é convertido
para caracteres 8O, sabia disso? :razz:
quanto a array de bytes, bom isso acredito que tenha tambem
porque qualquer manipulação a baixo nivel vai precisar
mexer com arrays de bytes
abraços
É, tava tudo fuoncionando muito bem pra ser verdade… :roll:
Fiz um teste de upload com um arquivo de 13MB, e olha só no q deu :
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
Teria q haver um jeito de enviar pedaço por pedaçco do arquivo, sendo este pedaço definido por um buffer, de tamanho configurável.
Só que aí o cliente do WS deveria implementar este controle também, justamente o q eu não queria.
bom você poderia traçar um estratégia, configurar o seu WS
para receber até um determinado tamanho, esse tamanho
seria legal tambem ser enviado no WSDL para o cliente e com isso
no cliente você implementa essa funcionalidade de fragmentação do arquivo…
tem um outro porem tu vai ter que ter alguma forma no servidor onde está
o WS de remontar o arquivo :razz:
É, fiz alguns testes e o limite do arquivo ficou em pouco mais que 4MB.
Por enquanto vou permitir upload de arquivos que tenham no máximo este tamanho…
Tosco? É, concordo… :lol:
Mas por enquanto vai ficar assim.
No meu caso vai ser difícil que um único registro de uma tabela seja maior que este limite.
Acho interessante a fragmentação do arquivo em várias partes, mas eu queria deixar este controle transparente para o cliente.
bom isso é verdade quanto mais transparente
o uso para o cliente melhor
Estou com o mesmo problema.
vejam se podem me ajudar.
Preciso enviar uma planilha Excel de uma máquina Server (que acessa a base de dados) para uma máquina “Client” via Webservice.
Como fazer isso ?
Caso eu crie um método retornando um byte[], estará trafegando Bytes ou TXT (um txt com 0’s e 1’s no corpo do texto) ??
:roll: Pergunta complicada heim ???
Estou preguntando isso pq estou preocupado com a performance.
Se for TXT vai ficar muito mais pesado do que se fosse binário.
Alguem tem um conhecimento avançado p/ fornecer algumas informações ? Caso precise de mais detalhes é só falar.
Abraço.
Olha, não sou nem um pouco a pessoa mais indicada para te ajudar hehe nunca mexi com Web Service, só me interesso e leio sobre o assunto. E fiquei curioso para saber se existe algo do tipo. Da uma lida nesses links, o primeiro eh ±… o segundo diz que web service não é para isso, e o terceiro me pareceu que existe que é possivel mas não muito usado/pratico, anexar arquivos em mensagens soap (SwA - Soap with Attachment). Mas não sei como fica a integração depois com outras linguagens, etc.
http://forum.java.sun.com/thread.jspa?threadID=722609
http://p2p.wrox.com/topic.asp?TOPIC_ID=9426
http://www.itcourseware.com/Webpdfs/webwebsvj.pdf (pagina 130)
flw
Obrigado luBS,
estou dando uma olhada nos sites que você indicou.
Acabei “driblando” essa necessidade. Mas ainda continuo curioso para saber como resolver isso.