質問

私のWebサービスプロバイダーは大きなWSDLファイルを提供しますが、内部で使用する関数はほんのわずかです。

大規模なWSDLはアプリケーションのパフォーマンスに悪影響を及ぼすと考えています。

クライアントアプリケーションでWebサービスを使用しています。起動時間メモリ使用量が問題です。 大規模なWSDLは、jax-wsがバインディングを行うのに時間がかかり、スタブクラスにより多くのメモリがかかることを意味します。

WSDLファイルを軽量バージョンにトリミングすることは可能ですか?この目的のためのツールはありますか?

Webサービスプロバイダーが別のWSDLを生成するとは思わない。 ビルドスクリプトで自動実行する必要がある場合があります。

役に立ちましたか?

解決

要するに、あなたの答えは<!> quot;ツールはありませんが、DIY <!> quot;です。

WSDLに含まれる未使用の関数とデータ構造のスキーマが多すぎるため、それを実行できるシンプルなツールがあればいいのに。

自動化できる場合、WSDL-<!> gt;トリミングされたWSDL-<!> gt;クライアントスタブクラスを生成します。未使用のものは生成されず、誤用もメンテナンスも不要であり、生成されたコードに触れることはありません。使用中のコードに集中できます。より小さいJAR、短いXML解析時間。 WSDLが更新された場合、クライアントスタブクラスを再構築し、ユニットテストを実行するだけで済みます。

私は、呼び出された人間から離れようとしました。時間がかかり、間違いを犯しやすく、元のWSDLを少し変更するたびにやり直す必要があります。

私はWSDLスキーマに精通していません。 XSLTで実現できると思いますか?

他のヒント

WSDLのサイズは、ダウンロードしたり、リクエストごとに解析したりしない限り、パフォーマンスに影響を与えません。後者を行っている場合は、しないでください。サービスが変更されたときにのみ処理する必要があり、サービスは常に互換性があり、古いメッセージのサポートを継続する必要があります(少なくとも重複する期間)。

WSDLの処理をプログラムの変更と見なし、リリースと同様に、バージョン管理やテストなどを行ってください。

問題は、WSDL自体のサイズにありません。重要なのは、生成されたコードのサイズです。たとえば、Axis2を使用して大規模なWSDLからコードを生成する場合、WSDL操作ごとに要求/応答クラスと戻り値のクラスを作成することになります。後で巨大なスタブクラスになりますが、これは不要なWebサービス操作に必要なクラスをインポートするため、パフォーマンスに影響を与える可能性があります。

これを行う簡単なツールはありません。私は通常、それを行うためにnotepad ++を使用します。そうすれば、間違いを犯す可能性が常にあります。

もう1つのよくある間違いは、ほとんどの場合(少なくとも私の場合は)Syncスタイルメソッドのみを使用する場合に、SyncスタイルメソッドとAsyncスタイルメソッドの両方を生成することです。これにより、スタブのサイズも劇的に増加する可能性があります。

お話ししているツールは使用していませんが、コードがWSDLファイルに触れることなく、Webサービスメソッドを正常に実行できます。

これは、クイックテストを実行する良い機会のようです。使用する予定の簡単なメソッドの1つを実行するために必要なものを除き、WSDLファイルからすべてを切り取ります。代わりに、WSDLのコピーを参照してください。それが機能する場合、次に何をすべきかを知っています!

WSDLをトリミングする必要はありません。このパスをたどる設定になっている場合は、不要なスタブクラスのすべてを削除します。必ずテストを行い、すべてがまだ機能していることを確認してください。

<!> lt; wsdl:operation <!> gt;を手動で削除できます。必要のないメソッドに対応する要素と、それで十分かどうかを確認します。ファイルの残りの部分に触れることなく、これらの要素を削除できるはずです。

WSDLの物理的なサイズは、コンパイル時にクライアントスタブクラスを生成する場合は重要ではありません(たとえば、AXIS wsdl2javaを使用)。WSDLをダウンロードし、リクエストごとに解析してからダウンロード時間は、おそらく解析時間を短縮します。ダウンロード時間が問題になる場合は、ファイルをローカルにキャッシュすることを検討してください。解析時間が問題になる場合は、ファイルをトリミングするか、解析されたオブジェクトをキャッシュすることを検討してください。プロバイダーが新しいWSDLを発行するときに変更を統合する必要があるため、ファイルをキャッシュまたはトリミングするときは注意してください。サービスが再起動されるたびに、または一定の間隔で、キャッシュ/トリミングされたWSDLを更新することを検討してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top