如何控制生成的Web服务类型中包含哪些字段?

时间:2012-10-01 15:26:20

标签: java jax-ws webservice-client

我正在开发一个遗留系统,其中webservice-clients被包含为打包的.jar文件。我们想要改变它,而不是生成客户端。但是在完成之后,存在一些差异,.jar-clients可以访问返回对象的所有字段,生成的版本中有一些缺失。 (它们实际上是从生成的服务的xsd中丢失的,因此不会在客户端生成)。我们很快就注意到,缺少的字段和存在的字段之间的区别在于缺少的字段没有getter和setter。添加这些后,大多数字段都被包含在内,但不是那些服务方法的返回类型是List。

所以我的问题是,为了将字段包含在服务的xsd-schema中,必须存在哪些方法?更具体地说,必须包含哪些方法才能包含集合?

在服务类中:

public Organization getOrganization(final Integer id) {
    return something.getOrganization(id);
}

并在组织中:

public class Organization {
    private Integer id;
    private List<String> phoneNumbers;
    private String name;

    public Organization(final String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    //No setter for name, so the field is not included in the wsdl..

    public Integer getId() {
        return id;
    }

    public void setId(final Integer id) {
        this.id = id;
    }

    //Id has both setter and getter, so it is included..

    public List<String> getPhoneNumbers() {
        return phoneNumbers;
    }

    public void setPhoneNumbers(final List<String> phoneNumbers) {
        this.phoneNumbers = phoneNumbers;
    }

    //phoneNumbers has both getter and setter, but still is not included. 
    //I guess it is because it is a list.

0 个答案:

没有答案