Thursday, October 14, 2010

Envío de ficheros con WS usando jaxb

Siguiendo el tutorial anterior, vamos a comentar como se puede enviar un fichero. Filosóficamente, un Web service solamente debería se posible enviar datos en ascii, ya que cada uno bajo su plataforma implementa las funcionalidades de los WS sabiendo que son simplemente texto.

Para definir un Web service como comentaba en el anterior tutorial solamente definimos un pojo con la siguiente etiqueta
@WebService
public class SendFile{
}
después implementamos un método con los siguientes parámetros

public boolean send(
@WebParam(name="steamFile")
@XmlMimeType("application/octet-stream") DataHandler data,
@WebParam(name="nameFile") String  fileName,
@WebParam(name="extension")String  extension)
throws ReturnError {


try {
if(data.getInputStream().available()>0){
                            ///leer el fichero
                        }else{
                           throw new ReturnError ("fichero vacio");
                        }
} catch (IOException e) {

ReturnError err =new ReturnError ();
err.initCause(e);
throw err;
}
}


el objeto DataHandler  encapsula el tratamiento del fichero.

simplemente ahora generamos todo el código con wsgen, y generamos el cliente con wsimport.
lo desplegamos en nuestro servidor de aplicaciones favorito. y a jugar.




No comments:

Post a Comment