JBoss 5.1.0GA を使用して WebService とそのクライアントを開発しています。JBossWs スタックは、ダウンロードしたバイナリで既にプリインストールされており、私の理解では、JBossWs 3.1.2GA です。
このセットアップを使用して Web サービスを開発し、クライアントも正常に作成しました。これは私が持っているものです。
war ファイルとしてデプロイされた pojo Web サービス。
@WebService
public class Service{
@WebMethod
public CompleObj getConfiguration() {
CompleObj oConf = new CompleObj ();
for (int i = 0; i < 10; i++) {
NestObj oInst = new BOpRepoInstance("Val1", "Val2", "Val3", "Val4");
oConf.addRepoInstance(oInst);
}
return oConf;
}
}
ここ、
CompleObj => は、NestObj 型のリストを持つ複合オブジェクトです。そのゲッター/セッター、toString、およびその他のメソッド。
NextObj => は String 型の変数を 4 つ持っています。そのゲッター/セッター、toString、hashCode、equals、およびその他のメソッド。
この Web サービスを正常にデプロイしました。
その後、Eclipse ウィザードを使用してクライアントを作成し、WSDL ドキュメントを使用して Web サービス クライアントを生成しました。また、Web サービスを呼び出して戻り値を取得するサンプル クライアント ファイルも作成しました。これも魅力のように機能しました。
今私の問題は、Eclipseがクライアント用のスタブを生成したときに、CompleObjとNestObjのクラスを作成したことです。これらのクラスには、変数とそのゲッター/セッターしかありません (これらは WSDL ドキュメントから生成されているため、これは理にかなっています)。したがって、クライアント側でも使用したいtoString、hasCode、equalsなどを含む他の多くのメソッドを失います。
WebService プロジェクトで定義された実際のクラス ファイルを直接利用し、クライアントが生成されたファイルを使用しないようにするにはどうすればよいでしょうか。クラス ファイルをクライアント プロジェクトの .jar バイナリとして提供できますが、これを実現する方法がわかりません。
もう 1 つの質問は、Web サービスの場所がスタブに直接埋め込まれていることです。Web サービスの場所を引数の一部として呼び出しコードに渡すにはどうすればよいですか?