Windows Werver 2012 で実行されている Glassfish で Java クライアントと Java Web サービスを使用して Web サービスを構築しています。
これは私の @WebService クラスです:
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
@WebService
public class ProductCatalog {
public List<String> getProductCategories(){
List<String> categories = new ArrayList<>();
categories.add("Books");
categories.add("Music");
categories.add("Movies");
return categories;
}
}
クライアント側でスタブ メソッドを作成するために、Java の wsimport 変換を使用して、WS によって発行された WSDL xml から必要な Java ソース ファイルを生成します。
私が気づいたのは、リストに cetgory を追加すると、次のようになることです。
//...code
categories.add("Books");
categories.add("Music");
categories.add("Movies");
categories.add("Pens");
//...code
クライアント側から更新された配列リストを取得します: Book,Music,Movie + "Pens"
- しかし、クラスに新しいメソッドを追加すると、そのメソッドがクライアント側から見えなくなります。どうしてですか?
- WSDL ファイルに対して WSIMPORT を再度実行し、クライアント側を再コンパイルする必要があるためですか?
- 上記が当てはまる場合、サーバー側/Web サービス コードに変更があるたびに WSIMPORT クラス/ソース ファイルの生成を回避する方法はありますか?
ありがとうルター