ボトムアップWebサービスのクライアントコードを構築する方法をリファクタリングしています。既存のビルドは、JBoss 4.2でのWebサービスのデプロイメントを使用し、 http://devserver.url?wsdlに対してAxis 2 AntCodegenTaskを実行することにより、Javaクライアントコードを作成します。開発サーバーがダウンしているか、古いwsdlがある場合、このメソッドは失敗します。(wsdlが変更されるたびにCrusie Controlは失敗します。)
Webサービスのデプロイメントを指すのではなく、Webサービスクラス自体に対してクライアントコードをビルドする必要があります。java2wsdlを使用してWebサービスクラスからwsdlを生成してから、同じAntCodegenTaskを使用してクライアントクラスを生成します。
問題は、java2wsdlによって作成されたwsdlが、JBossがhttp://devserver.url?wsdlに表示するものと異なることです。特に、一部の名前空間は異なり、AntCodegenTaskステップはこれらの名前空間を正しいパッケージ構造に変換しません。
最終的なパッケージ構造をクライアントコードが期待するものにする必要があります。既存のAntCodegenTaskはnamespacetopackages="..."を使用してそれを実現しますが、java2wsdlによって生成されたwsdlに対して同じAntCodegenTaskを実行すると、名前空間がパッケージ名に変換されません。
WebサービスがJBossにデプロイされている場合、Axisがjava2wsdlから生成するものとは異なるwsdlを表示するのはなぜですか?
Axisを使用して、中間のwsdlを生成せずにWebサービスクラスからクライアントコードを作成する方法はありますか?
java2wsdlおよびwsdl2javaAntタスクのドキュメントは少しむらがあります。Axis 2 v 1.4.1は、異なるパッケージのAntCodegenTaskと2つのJava2WSDLTasksのAntタスクを提供します。Axis 2のインストールには、wsdl2javaおよびjava2wsdlのバイナリが含まれていますが、codegenバイナリは含まれていません。たぶん、AntCodegenTaskはwsdl2javaと同じです。
Axis 2で動作するこのようなものを誰かが持っていますか?