2009-04-07 2 views
0

現在、ベンダ提供のWSDLスキーマが非常に大きくなっています。バインディングスタイルはRPCです。私が知る限り、Axis 1.xはRPC WSDL定義をサポートする唯一のJavaツールです。もし私がそれについて間違っているなら、私を修正してください。 Javaの64Kの制限よりもかなり大きい -64KBを超えるスタティックブロックを作成するWSDL2Javaを解決するにはどうすればよいですか?

のWSDL2Javaのサイズは静的intialisationブロック1.3MBを持って Skeleton.javaファイルサービス名を生成します。

インタフェースの定義を変更できないことを考えれば、どのように進むべきだと思いますか?私はそれらを見るように

当社のオプションは以下のとおりです。

  • ブレークアップ発生した静ブロック
  • ブレークアップ(つまり、インターフェイスを変更することなく、可能かどうかわからない)WSDLを
  • パッチ軸のWSDL2Javaコード

他のアイデアをお持ちですか?

+0

私の古いSOの行動を再訪しています。とにかく、ベンダーに厄介なSOAPツールを修正させることができなかったので、私は生成されたJavaクラスの静的初期化ブロックを小さなチャンクにバストするためのPerlスクリプトを書いていました。不吉。 –

答えて

1

RPCのWSDLをドキュメントに変換する方法について説明しています。articleを参照してください。私はまずそれを試みることをお勧めします。

また、RPC/encoded WSDL(おそらくWS-Iに準拠していない)があります。 JAXWSはRPC /リテラル​​のみをサポートしています。したがって、CXFやAxis2のようなフレームワークであればそれをサポートします。したがって、WSDLをRPC /リテラル​​に変換することもできます。

CXFにはtoolという職種があります。

とにかく、WSDLをより新しい形式に変換することをお勧めします。これにより、サーバー実装とクライアント実装の両方の作業が簡単になります。私はそれがAxis1と戦う価値があるとは思わない。手動でSOAPメッセージを書いたり解析したりすることも、より簡単になります。

1

あなたのwsdlが頻繁に変更される可能性がある場合は、wsdl2javaコードにパッチを当てる価値があります。そうしないと、最初のオプションに行きます。

関連する問題