apache-axis

ここのところaxis三昧。いろいろ見えてきた。SOAP!=CORBAだ。
ワイアー上のデータはXMLで表現可能なものだから、単なる構造体以上のクラス・オブジェクトを期待してはいけない。
java2wsdl,wsdl2javaはよくできているが java->wsdl->java でbeanには関係ないメソッド・コンストラクタがなくなったりするからラウンドトリップ可かどうか実証しておくこと。

こっから推測。
ツールの自動生成が複雑な構造のオブジェクトをwsdl化してくれなかったら、ダミーのエンドポイントを定義して深い階層にあったオブジェクトをトップレベルの引数やら例外やら持ってきてツールから参照可能な位置に置いてやる。
ただし自動生成されたソースからはロジックがごっそり消えているので、基本クラスに自動生成のシリアライザ定義を貼り付けでもすればいいのでは。
サーバーは基本クラス、クライアントは自動生成ソースの場合なんかもクラス定義自体が違うのでトラブルの元になるだろう。
リモート例外に例外チェインは使ってはいけない。入れ子になる例外は実行時にシリアライズエラーになるだろう。相手に伝えたい例外はすべてWSDLに記述し、記述しなかった例外は文字列として渡すのがクレバーだろう。
数年後にランタイムライブラリをすべて自動でシリアライズ可能になるとしても、今はそうしたほうがいい。
以上。