我正在开发一个遗留系统,其中 webservice-clients 作为打包的 .jar 文件包含在内。我们想改变这一点,改为生成客户端。但是在完成此操作之后,存在一些差异,.jar-clients 可以访问返回对象的所有字段,生成的版本中缺少一些。(它们实际上是从服务的生成 xsd 中丢失的,因此不会在客户端中生成)。我们很快注意到缺失的字段与存在的字段之间的区别在于缺失的字段没有 getter 和 setter。添加这些后,大部分字段都包含在内,但不是服务方法的返回类型是列表。
所以我的问题是,必须存在哪些方法才能将字段包含在服务的 xsd 架构中?更具体地说,必须存在哪些方法才能包含集合?
在服务类中:
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.