Saya menulis kelas abstrak
import javax.xml.bind.annotation.*;
public abstract class Parent
{
@XmlAttribute(name = "one")
public String getOne() { return "one";}
}
dan dua kelas turunan:
import javax.xml.bind.annotation.*;
@XmlRootElement(name="child1")
public class Child1 extends Parent
{
@XmlAttribute(name = "two")
public String getTwo() { return "2";}
}
import javax.xml.bind.annotation.*;
@XmlRootElement(name="child2")
public class Child2 extends Parent
{
@XmlAttribute(name = "three")
public String getThree() { return "3";}
}
dan @layanan web:
import javax.xml.ws.Endpoint;
import javax.jws.*;
import java.util.*;
@WebService(serviceName="MyServerService", name="MyServer")
public class MyServer
{
private int count=0;
@WebResult(name="test")
@WebMethod
public Parent getOne() { return ++count%2==0?new Child1():new Child2();}
public static void main(String[] args) {
Endpoint.publish(
"http://localhost:8080/path",
new MyServer());
}
}
Ketika kode dibuat menggunakan wsgen, skema XML yang dihasilkan hanya berisi definisi untuk kelas abstrak Induk tetapi tidak untuk Anak1 atau Anak2. Apakah ada cara untuk memberitahu wsgen untuk menghasilkan definisi untuk dua kelas konkret?
Terima kasih,