私は、webservice-clients がパッケージ化された .jar ファイルとして含まれていたレガシー システムで作業しています。これを変更して、代わりにクライアントを生成したいと考えました。しかし、これが行われた後、.jar-clients が返されたオブジェクトのすべてのフィールドにアクセスできるといういくつかの違いがあり、生成されたバージョンにはいくつかの欠落がありました。(これらは実際には、サービスの生成された xsd から欠落していたため、クライアントで生成されませんでした)。不足しているフィールドと存在していたフィールドの違いは、不足しているフィールドにはゲッターとセッターの両方がないことであることにすぐに気付きました。これらを追加した後、ほとんどのフィールドが含まれていましたが、サービス メソッドの戻り値の型がリストであったフィールドは含まれていませんでした。
私の質問は、サービスの 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.