Skip to main content

Herencia con Web Services y jax-ws

Posted in

 Es posible que cuando hacemos un servicio web con jax-ws, queramos poder pasar como parámetros de los WebMethod clases hijas de las que están definidas, o bien devolver una clase hija.

@WebMethod
public RespuestaPadre metodo(ParametroPadre unParametro) {
   ParametroHijo p = (ParametroHijo)unParametro;
   ...
   return new RespuestaHija();
}

donde RespuestaHija hereda de RespuestaPadre y ParametroHijo hereda de ParametroPadre.

Con jax-ws puede hacerse esto si en la definición del @WebService de la clase añadimos la anotación @XmlSeeAlso con todas las posibles clases hijas implicadas

@WebService
@XmlSeeAlso({RespuestaHija.class, ParametroHijo.class})
public class UnWebService {

   @WebMethod
   public RespuestaPadre metodo(ParametroPadre unParametro) {
      ...
   }
}