que tienen este sencillo servicio Web JAX-WS:polimórfica servicio web JAX-WS parámetros
@WebService
public class AnimalFeedingService {
@WebMethod
public void feed(@WebParam(name = "animal") Animal animal) {
// Whatever
}
}
@XmlSeeAlso({ Dog.class, Cat.class })
public abstract class Animal {
private double weight;
private String name;
// Also getters and setters
}
public class Dog extends Animal {}
public class Cat extends Animal {}
puedo crear un cliente y llaman feed
con una instancia de Dog
.
Animal myDog = new Dog();
myDog .setName("Rambo");
myDog .setWeight(15);
feedingServicePort.feed(myDog);
El animal en el cuerpo de la llamada SOAP tiene el siguiente aspecto:
<animal>
<name>Rambo</name>
<weight>15</weight>
</animal>
y me sale un UnmarshallException
porque Animal
es abstracta.
¿Hay alguna manera de desarticular Rambo como una instancia de la clase Dog
? ¿Cuáles son mis alternativas?
Usando xsi: tipo de SoapUI funcionó, el problema debe estar en mi cliente. Gracias. – adrianboimvaser