川田です。 axis-userのダイジェストをお送りします。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 【キーワード】 JAXB、Castor 【日付】 2005/01/14 - 2005/01/17 【スレッド】 http://marc.theaimsgroup.com/?t=110087956500004&r=1&w=2 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ [1] - roger.stoffers ────────────────────────────── 私は今、(手元にある)アプリケーションにおいて、(手元にある) XML スキーマを利用しています。また、そのアプリケーション内で マーシャル/アンマーシャルを容易に行うために JAXB も利用して います。このアプリケーション機能の一部を SOAP を通じて公開し たいと思います。document/literal スタイルのメッセージを構築 するのに JAAS が利用されますが、私は Axis を利用したいと思い ます。なぜなら Axis は私の要求をより満たすからです。 ですから、(手元にある)スキーマを WSDL ファイルに含めたいので すが、どのようにすれば Axis の document スタイルと JAXB を利 用してオブジェクトのシリアライゼーション/デシリアライゼーシ ョンを行うことができるでしょうか。 ┗┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ [1-1] - Paul Callahan ────────────────────────────── その2つ(あるいは Axis と、いかなる XML シリアライズ機構)を統 合することのできる方法が2つあります。 1つは IBM の記事の中で議論されています。その中では Castor を 利用していますが、土台であるテーマは同じです。 http://www-106.ibm.com/developerworks/webservices/library/ws-castor もう1つは "message" スタイルサービスを利用することです。以下 は以前の投稿です。 --- カスタムシリアライザを作る替わりに、document/literal スタイ ルのサービスを利用し、そして Axis が提供する4つのメソッドシ グネチャの内の1つを利用してください。受け取ったメッセージの 種類を決めるのに、入力された XML を調べることができます。そ こで JAXB API が提供するユーティリティを利用して XML メッセ ージを JAXB オブジェクトに変換し、あなたのビジネスロジックを 実行します。そして、JAXB を利用して出力オブジェクトを生成し 、XML にシリアライズし、あなたのWebサービスメソッドからそれ を返します。ですから、あなたのWebサービス"コントローラ"クラ スは以下のようなメソッドを持つでしょう。 public Document doService(Document body) throws AxisFault { // どのような"種類"のメッセージを受け取ったかを確かめるために document を検査 // メッセージのデシリアライズ jc = JAXBContext.newInstance(<あなたの名前空間>); u = jc.createUnmarshaller(); m = jc.createMarshaller(); requestObj = u.unmarshal(body); // このオブジェクトに対し、あなたのドメインロジックを実行 // レスポンスをシリアライズして返す returnDoc = XMLUtils.newDocument(); m.marshal(responseObj, returnDoc); return returnDoc; } --- WSDL 内での XSD の再利用に関しては、あなたは正しい方向に向か っています。WSDL 内で import 文を利用して XSD 名前空間を参照 することができます。私は以前に JAXB を利用して document/literal 用の WSDL を生成したことはありません。しか し、いくつかのインターフェースを定義して JAXB オブジェクトを 利用すれば可能でしょう。そして、WSDL 内で生成されたスキーマ の替わりにあなたの XSD を利用するように、その出力を変更する 必要があります。 どなたか他に良い方法があれば正してください。 ┗┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ [1-1-1] - Senaka Suriyaarachchi ────────────────────────────── パフォーマンスについてアイデアを頂けないですか?Castor と JAXB のアプローチを比較して。 私たちは多少精通しているという理由から JAXB で進めていくこと を決めましたが、Castor と比較したパフォーマンスについては知 りませんので。 ┗┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ [1-1-1-1] - Paul Callahan ────────────────────────────── Castor と JAXB の比較に関する以下の記事をご覧になることをお 勧めします。JAXB が優勢という結論に終わっているみたいですが 、、、 http://www-106.ibm.com/developerworks/xml/library/x-databdopt2/ あなたがご覧になったほうがいいと思う他の選択肢として XMLBeans と XStream があります。 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]