मैं इस सरल JAX-WS WebService है:बहुरूपी JAX-WS वेब सेवा का उपयोग करना पैरामीटर
@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 {}
मैं एक ग्राहक बना सकते हैं और Dog
का एक उदाहरण के साथ feed
कहते हैं।
Animal myDog = new Dog();
myDog .setName("Rambo");
myDog .setWeight(15);
feedingServicePort.feed(myDog);
सोप कॉल के शरीर में पशु इस तरह दिखता है:
<animal>
<name>Rambo</name>
<weight>15</weight>
</animal>
और मैं क्योंकि Animal
एक UnmarshallException
सार है मिलता है।
क्या रैम्बो को Dog
वर्ग के उदाहरण के रूप में unmarshalled करने का कोई तरीका है? मेरे विकल्प क्या हैं?
xsi का उपयोग करना: सोपूआई से टाइप किया गया, समस्या मेरे क्लाइंट में होनी चाहिए। धन्यवाद। – adrianboimvaser