0

IDE で既に wsimport を実行している場合でも、JAX-WS は実行時に SOAP エンドポイントの WSDL をフェッチします。この動作は次のとおりです: http://jax-ws.java.net/faq/index.html#wsdl_at_runtime

クライアントが実行時に取得できるメタデータの量に制限はありますか? もしそうなら、この制限を増やす方法はありますか?

IDE 内で wsimport を実行することについて言及しているわけではないことに注意してください。それはうまくいきます。特に、実行時に WSDL メタデータをフェッチすることについて話しているのです。

4

3 に答える 3

1

この問題に長い時間を費やした後、私たちは解決策を思いつきました。私は Netbeans で Metro を使用して Glassfish 環境で作業していました。WEB-INF をソース パッケージ フォルダーにコピーすると、すべてが機能しました。Java ランタイムは、jaxws-catalog.xml ファイル内の相対パスにバインドできるようになりました。そのフォルダをコピーしないと機能しません。

于 2011-01-12T22:25:36.663 に答える
1

Metro/JAX-WS-ri は、実行時に WSDL を必要とします。説明については、 http://jax-ws.java.net/faq/index.html#wsdl_at_runtimeを参照してください。

実行時に WSDL がフェッチされないようにするには、それをリソースとしてパッケージ化し、プロキシ ファクトリをインスタンス化するときに提供する必要があります。

new XYZ_Service( XYZ_Service.class.getResource( "/path/to/your/XYZ.wsdl" ), new QName( "NameSpace", "ServiceName" ) );
于 2011-09-08T11:58:49.350 に答える
0

Metro FAQを参照しているという事実に基づいて、実行時にWSDLのコピーがまだ必要である理由について明らかに読んだことがあります。FAQを繰り返すと、その理由は、対応するJavaアノテーションがないWS-*拡張機能をサポートできるようにするためです。

現在、Metroでは拡張機能のサポートを無効にする可能性はなく、その結果、実行時にWSDLの必要性を回避する方法はありません。

于 2010-12-13T15:50:40.877 に答える