WSDL2Java

WSDL2Javaで自動生成されるコードの変更方法を調べてみた。
ちなみにadb用の場合。
jibxとかは使ってないので知らない。


生成されるコードの元になっているテンプレートはaxis2-adb-codegen-1.6.1.jarに入っているorg.apache.axis2.schema.template.ADBBean〜という3つのファイル。
これらのファイルを抽出してクラスパスに置いておくとそっちが使用されるようになる。
axis2のWSDL2Javaはスクリプトになっているのでクラスパスにファイルを含めるにはそっちもいじる必要があるけどそれは割愛する。


ファイルの中身はよくわからないがxslt?というもので書かれている。
テンプレートといいながらもほとんどプログラム。
試しにプロパティ名の一覧をコメントで出力してみる。
ADBBeanTemplate-bean.xslの適当なところ(先頭の方にあるpublicの上あたりがわかりやすいかも)にこんな記述を追加する。

//


これでWSDL2Javaツールを実行すると自動生成されたbeanクラスの中にプロパティ名の一覧があるはず。


こいつは便利だ。
axis2は基本java5以降推奨なのに自動生成するコードがジェネリクスガン無視してるからコンパイル警告を消すのがわずらわしかったのだが、これでジェネリクス対応のコードが自動生成できるようになる。
まだ少ししか試していないが、どんなカスタマイズができるか非常に楽しみだ。