【问题标题】:HTTP Metadata Requests with WSIT/JAX-WS使用 WSIT/JAX-WS 的 HTTP 元数据请求
【发布时间】:2010-11-26 17:34:40
【问题描述】:

我在针对 .NET STS 和安全 Web 服务运行 Java(使用 Metro)客户端时遇到问题。但是,当我运行基于 .NET 的客户端时,它总是可以工作。

您可能已经知道,当运行 JAX-WS 客户端时,它会在运行时向服务请求元数据(即使它在设计时已经运行了 wsimport)。但是,这个运行时元数据请求似乎是我的问题所在。

我面临的问题是,在元数据的运行时请求期间,我的 WCF 服务导出的一些 WSDL 导致 Java 客户端在 mex 请求期间只是“挂起”。当它挂起时,它甚至没有到达发出 RST 请求的地步。

例如,我可以到达一个我有 9 个 [OperationContract] 属性的地方,并且它可以工作。但是当我添加第 10 个服务方法时,它不起作用。但是,如果我删除 9 个中的一个,那么它可以工作。我知道特定方法没有问题,因为我可以混合和匹配并且保持相同的模式。

我似乎无法推断出某些 WSDL 有效而某些无效的模式或原因。我强烈怀疑服务方法的数量是否存在限制。但是,这可能是导出的 WSDL 的“整体复杂性”问题吗?

有人有什么想法吗?有没有人遇到过这个问题?

如果需要更多信息,我很乐意发布。我只是想让最初的帖子保持可管理的长度。

我还要补充一点,我在 .NET 4 中运行 STS 和安全 Web 服务,它们基于 WIF(所以我不必担心安全设置)。我的 .NET 客户端也是 .NET 4。在 Java 端,我使用 Netbeans 6.9.1 和运行 Glassfish 3 的 Metro 2.1。我已经验证在 Metro 2.0 上运行时遇到了同样的问题。

【问题讨论】:

    标签: wcf metadata jax-ws java-metro-framework wsit


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      按照给出的示例,有可能达到 MaxMessageReceivedSize 或 MaxStringContentLength 限制。您是否尝试增加 MaxMessageReceivedSize 和 MaxStringContentLength 的值进行绑定?您可以尝试启用 WCF 跟踪,如果达到任何此类限制,则会记录一个警告。

      【讨论】:

      • 感谢您的回复,但我在 .NET 中检索元数据没有问题(通过添加服务引用或直接使用 svcutil)。我的问题是 Java 在运行时获取元数据。我还创建了自定义 mex 绑定,增加了您指定的那些值,但它仍然不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      相关资源
      最近更新 更多