私はNetBeans7.2で作業しています。JAXBバインディングを使用してxmlからクラスLaptopを作成し、次にこのプロジェクトからjarを作成してWebサービスライブラリに追加しました。Laptopクラスの関数をWebサービスの関数として使用したいと思いました。Webサービスクライアントでは、ラップトップのリストを返すgetall()など、一部のクラスはwsの関数から自動的に生成されました。
@WebMethod
public List<Laptop> getAll() {
return l.getAll();
}
WebサービスクライアントのGetAll.javaクラスとは別に、GetAllResponse.javaクラスも生成されました。これには、内部にReturnクラスが含まれています-ReturnはLaptopクラスと同じです-名前のみが異なります。したがって、ラップトップまたはラップトップのリストを返す関数から生成され、名前に「Response」という単語が含まれるWebサービスクライアントのすべてのクラスには、クラスReturnが含まれます(@WebResult(name = "Laptop"を使用)。名前は変更できます。ラップトップに戻るから)
@WebMethod
@WebResult(name="Laptop")
public Laptop getById(int id) {
return l.getById(id);
}
いくつかの場所にラップトップを実装していると、クライアントに返されるオブジェクトの名前空間に問題があります。次の図のように、期待されるオブジェクトはDAO.client.Laptopですが、DAO.client.GetByIdResponse.Laptopが送信されます。クライアントにラップトップの実装を1つだけにするため、または返されるオブジェクトのタイプのあいまいさを避けるために、何を変更する必要がありますか?
写真1:名前空間の問題 http://imageshack.us/photo/my-images/208/47894110.jpg/
Pict2:Laptop.javaのいくつかの場所 http://imageshack.us/photo/my-images/534/24881074.png/