川田です。
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]