私はwebservicesに少し新しくなっています。私はNetbeans 7.0とAxis2を使用しています。私はJavaサーバー側のコードとJavaクライアントを持っています。簡単にするために、私は非常に単純な例を使用します。Axis2 Webserviceから作成されたクライアントサイドオブジェクトのtoString()メソッドの定義方法
私はworkSiteId、workSiteName、refCodeフィールドを持つWorkSiteクラスを持っており、それぞれgetterとsetterがあります。また、サーバー側では、クラスには、単にworkSiteNameを返すオーバーライドされたtoString()メソッドがあります。ですから、JComboBoxでGUIサーバー側を作成してWorkSiteオブジェクトを追加すると、workSiteNameは各オブジェクトのJComboBoxに表示されるものになります。
"getWorkSiteList"のようなWebメソッドを作成しました。データベースからクエリを出し、WorkSiteオブジェクトを作成して配列に追加し、配列を返します。 NetBeansのクライアントサイドのJax-WS "Generated Sources"を見ると、gettersとsetterはすべて存在しますが、toString()メソッドはそこには存在しないことを除いて、問題なくWorkSiteオブジェクトを使用できます。ですから、WorkSiteオブジェクトを配列から取り出してJComboBoxに配置すると、コンボボックスには、「itempackagename.WorkSite.a6d35」のような非常に醜いものが表示されます。
私の本当の疑問は、私はtoString()メソッドを持たないNetbeansのクライアント側に自動生成されたWorkSite.javaファイルを持っていることです(これはスケルトンの権利と呼ばれていますか?サーバー側クラスで定義されたtoString()メソッドをインクルードする方法はありますか?そうでない場合は、自動生成されたクラスを編集することは安全ですか(これはスケルトンと呼ばれています)、toString()メソッドを追加するだけです。クライアントサイドで自動生成されたクラスを編集すると、リビルド時に上書きされますか?
ありがとうございました!私はそれがあまりにも長く巻き込まれていないことを望む。私はまだ簡潔な方法でそれを説明するためのすべての専門用語を知っていません。
良い情報スティーブンCさん、返信いただきありがとうございます。私は、テンプレートをどこに置いているのか、Javaクライアントのために編集するのかといったような詳細情報を見つけようと、ウェブの周りを見渡し、本当に有用なものは何も思い付きませんでした。私はまた、私の開発ボックスのどこかでこれらのテンプレートを探しましたが、空になりました。あなたはどんなアイデアを持っていますか? – Jim
私は、これを行うためのあまり理想的でない方法は、自動生成されたクライアントサイドクラスをサブクラス化し、サブクラスでtoString()メソッドを定義することかもしれないと考えました。それから、WorkSiteオブジェクトの配列を取得したら、toString()メソッドが定義されているSubWorkSiteオブジェクトを作成し、JComboBoxに渡して、希望の名前を表示させてから、SubWorkSiteオブジェクトサーバーに戻すと、自動生成されたWorkSiteクラスにキャストすることができます。あなたはそのアプローチに何か問題が見えますか? (見た目のノービス以外の) – Jim
さて、問題があります。生成されたクラスではなく、サブクラスを使用してインスタンスを修正するために、クライアントサイドのコードをどのように納得させるのですか? –