【问题标题】:Consuming a WCF WsHttpBinding WebService in Java在 Java 中使用 WCF WsHttpBinding WebService
【发布时间】:2010-11-11 11:26:01
【问题描述】:

我正在尝试让 Java 客户端与 WCF wshttpbinding WebService 进行通信。但我无法这样做。电话要么挂起,要么我得到“musunderstoodheader excetions”。

我的 Web 服务只是 Visual Studio 生成的默认“WCF 服务库模板”。

我的 Web 服务客户端只是一个空白的 IntelliJ 项目,使用“添加 Web 服务客户端”生成相应的存根(指定的 Web 服务平台是 JAX-WS 2.X)。

当我将绑定更改为 BasicHttpBinding 时,一切正常。

我尝试过使用 WsHttpBinding 配置,包括关闭安全性,但没有成功。

建议?想法? JAX-WS 2.0 是否仅部分支持 WsHttpBinding?

【问题讨论】:

  • 您能否分享您的代码以在 Java 客户端中将 WCF 服务与 wsHttpBinding 一起使用?我正在使用 Axis2 并面临安全令牌验证和绑定不匹配等问题。我认为 Axis2 不允许 wcf 与 wsHttpBinding 和 Java 客户端之间的互操作。

标签: java wcf web-services wcf-binding wshttpbinding


【解决方案1】:

我会仔细检查您的 WCF 配置并删除所有身份验证、授权等属性。请记住,默认情况下,WCF 将在使用安全传输/绑定时安全地公开您的服务。因此,除非您将 Java 客户端配置为满足这些安全要求,否则它很可能无法进行身份验证,并且您不会看到两者相反的情况。

一旦您开始讨论这两个问题,请逐步添加每个安全元素,直到您的 Java 客户端配置正确。

【讨论】:

    【解决方案2】:

    您的问题是JAX-WS 不支持在 wsHttpBinding 中使用的相同 WS 协议。您需要改用WSIT。 WSIT 作为Metro 库的一部分提供,Glassfish 也提供该库。

    我建议尽可能使用 wsHttpBinding 或 ws2007HttpBinding,但您仍然可以使用基于 SSL/Transport Auth 的 basicHttpBinding 提供相当安全的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多