WebServices recebendo arquivos

Olá pessoal, estou iniciando um trabalho com webservices, encontrei uma video aula que me ajudou iniciar o desenvolvimento.

a idéia é que o cliente envie um arquivo, para o webservice, o webservice receba o arquivo e faça o tratamento adequado…

meu problema é o seguinte, o webservice que desenvolvi seguindo uma video aula, está retornando textos

como devo proceder para que o mesmo receba um arquivo (do cliente), acione o código que faz o tratamento neste arquivo, e em seguida o webservice retorne o arquivo (após o tratamento) para o cliente.

Poderiam me ajudar?

Segue o código (extraido desta video aula :http://www.youtube.com/watch?v=mcaUbMDMR8Y&feature=relmfu)

classe RESTApplication

[code]import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
/**
*Esta é a Classe que vai conter o endereço de entrada

  • @author Fabricio Garcia

*/

@ApplicationPath("/resources")
public class RESTApplication extends Application{

}[/code]

Classe ContatoResource

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package rest.resources;

import entidades.Contato;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
*

  • @author Fabricio Garcia

*/

@Path("/contatos")
public class ContatoResource {

//Método que retorna uma lista de contatos getContatos
//Metodo vai ser acessado pelo metodo HTTP GET
@GET 

//Produzindo XML ou JSON.
//Como vamos retornar mais de 1 tipo, devemos coloca-los em um Array
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Contato> getContatos() {
    List<Contato> contatos = new ArrayList<Contato>();
    
    //Adicionando contatos
    contatos.add(new Contato(1, "Usuario 1"));
    contatos.add(new Contato(2, "Usuario 2"));
    contatos.add(new Contato(2, "Usuario 3"));
    //retornando a lista
    return contatos;
}

}
[/code]

Classe Contato

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package entidades;

import javax.xml.bind.annotation.XmlRootElement;

/**
*

  • @author Fabricio Garcia

*/

/* @XmlRootElement

  • Faz o Tratamento de transformar o objeto XML e de
  • converte-lo de volta para XML */
    @XmlRootElement

public class Contato {
//-------- 1º PASSO -------------
/*1º PASSO: a classe possui 2 campos */
private Integer id;
private String nome;
//--------FIM 1º PASSO -------------

   //--------3º PASSO -------------   
//Construtor sem argumentos
public Contato() {
}

//Construtor que recebe os 2 argumentos
public Contato(Integer id, String nome) {
    this.id = id;
    this.nome = nome;
}
 //--------FIM 3º PASSO -------------   

//--------2º PASSO -------------
/* 2º PASSO:
* criando os Gets e Sets (Refatorar> Encapsular Campos)
Selecionar tudo, REFATORAR.*/

/**
 * @return the id
 */
public Integer getId() {
    return id;
}

/**
 * @param id the id to set
 */
public void setId(Integer id) {
    this.id = id;
}

/**
 * @return the nome
 */
public String getNome() {
    return nome;
}

/**
 * @param nome the nome to set
 */
public void setNome(String nome) {
    this.nome = nome;
}
  //----------------FIM SEGUNDO PASSO ----------------  

}
[/code]

Juro que tentei, mas não entendí seu problema. Onde está o resource que recebe os arquivos e devolve os arquivos? Que classe você está usando para definir esses arquivos?

Se quiser, dê uma olhada no link que está na minha assinatura. Eu postei um exemplo de REST service contendo, entre outras coisas, upload/download de arquivos de imagens. Sinta-se livre para fuçar à vontade.

[]'s

[quote=Alexandre Saudate]Juro que tentei, mas não entendí seu problema. Onde está o resource que recebe os arquivos e devolve os arquivos? Que classe você está usando para definir esses arquivos?

Se quiser, dê uma olhada no link que está na minha assinatura. Eu postei um exemplo de REST service contendo, entre outras coisas, upload/download de arquivos de imagens. Sinta-se livre para fuçar à vontade.

[]'s[/quote]
Oi amigo, obrigado pela resposta, vou verificar o link que me indicou.

sobre os resources que recebem e devolvem, ainda não foram implementados, é justamente isto que gostaria, não tenho idéia de como realizar este processo de receber/devolver arquivos :frowning:

[quote=JAprendiz][quote=Alexandre Saudate]Juro que tentei, mas não entendí seu problema. Onde está o resource que recebe os arquivos e devolve os arquivos? Que classe você está usando para definir esses arquivos?

Se quiser, dê uma olhada no link que está na minha assinatura. Eu postei um exemplo de REST service contendo, entre outras coisas, upload/download de arquivos de imagens. Sinta-se livre para fuçar à vontade.

[]'s[/quote]
Oi amigo, obrigado pela resposta, vou verificar o link que me indicou.

sobre os resources que recebem e devolvem, ainda não foram implementados, é justamente isto que gostaria, não tenho idéia de como realizar este processo de receber/devolver arquivos :([/quote]

Declare um array de bytes na assinatura e devolva um array de bytes. O JAX-RS se encarrega do resto.

[]'s

[/quote]
Oi amigo, obrigado pela resposta, vou verificar o link que me indicou.

sobre os resources que recebem e devolvem, ainda não foram implementados, é justamente isto que gostaria, não tenho idéia de como realizar este processo de receber/devolver arquivos :([/quote]

Declare um array de bytes na assinatura e devolva um array de bytes. O JAX-RS se encarrega do resto.

[]'s[/quote]

Muito obrigado pela ajuda, não sei se entendí muito bem, mas irei verificar como realizar esta implementação, em sua assinatura, existe alguma classe que tenha este procedimento para que eu possa me basear?

[quote=JAprendiz][/quote]
Oi amigo, obrigado pela resposta, vou verificar o link que me indicou.

sobre os resources que recebem e devolvem, ainda não foram implementados, é justamente isto que gostaria, não tenho idéia de como realizar este processo de receber/devolver arquivos :([/quote]

Declare um array de bytes na assinatura e devolva um array de bytes. O JAX-RS se encarrega do resto.

[]'s[/quote]

Muito obrigado pela ajuda, não sei se entendí muito bem, mas irei verificar como realizar esta implementação, em sua assinatura, existe alguma classe que tenha este procedimento para que eu possa me basear?[/quote]


(Métodos addPortrait e getPortrait)


(Método testAddPortrait)

Obrigado, estou estudando o projeto que você postou, se mais alguem poder me ajudar com mais informações ou implementações, fico muito grato!