0

.NET STS および保護された Web サービスに対して Java (Metro を使用) クライアントを実行する際に問題があります。ただし、.NET ベースのクライアントを実行すると、常に機能します。

おそらく既にご存じのとおり、JAX-WS クライアントが実行されると、(設計時に既に wsimport が実行されていても) 実行時にサービスからメタデータを要求します。ただし、このランタイム メタデータ リクエストに問題があるようです。

私が直面している問題は、メタデータの実行時要求中に、WCF サービスによってエクスポートされた一部の WSDL が原因で、mex 要求中に Java クライアントが「ハング」することです。ハングすると、RST 要求を発行するまでには至りません。

たとえば、9 つの [OperationContract] 属性があり、それが機能する場所にたどり着くことができます。しかし、10 番目のサービス メソッドを追加すると、機能しません。ただし、9 つのうちの 1 つを削除すると、機能します。組み合わせて一致させることができ、同じパターンが成立するため、特定の方法に問題がないことはわかっています。

一部の WSDL が機能し、一部の WSDL が機能しない理由について、パターンや理由を推測することはできないようです。サービスメソッドの数に制限があるとは思えません。しかし、これはエクスポートされた WSDL の「全体的な複雑さ」の問題でしょうか?

誰にもアイデアはありますか?以前にこの問題に遭遇した人はいますか?

さらに情報が必要な場合は、喜んで投稿できます。最初の投稿を扱いやすい長さに保つようにしています。

また、.NET 4 で STS とセキュリティで保護された Web サービスを実行しており、それらは WIF に基づいていることも付け加えておきます (したがって、セキュリティ設定について心配する必要はありません)。私の .NET クライアントも .NET 4 です。Java 側では、Glassfish 3 を実行する Metro 2.1 で Netbeans 6.9.1 を使用しています。Metro 2.0 で実行しても同じ問題が発生することを確認しました。

4

2 に答える 2

1

詳細な回答については、ランタイム中の Metro/JAX-WS/WSIT による WSDL リクエストを参照してください。

于 2011-01-12T22:27:12.470 に答える
0

与えられた例に従うと、MaxMessageReceivedSizeまたはMaxStringContentLengthの制限に達する可能性があります。バインドのためにMaxMessageReceivedSizeとMaxStringContentLengthの値を増やしてみましたか?WCFトレースを有効にしてみることができます。そのような制限に達すると、警告がログに記録されます。

于 2010-11-26T19:55:29.633 に答える