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

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

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

当我将绑定更改为 BasicHttpBinding 时,一切工作都完美无缺。

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

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

有帮助吗?

解决方案

你的问题是 JAX-WS 不支持 wsHttpBinding 中使用的相同 WS 协议。你需要使用 WSIT 反而。WSIT 可作为 地铁 图书馆,也可以在 玻璃鱼.

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

其他提示

我会仔细检查你的WCF的配置,并删除所有authenitcation,authoraization等特性。请记住,在默认情况下,WCF会使用安全传输/绑定时安全地暴露你的服务。因此,除非您配置Java客户端,以纪念那些安全需求,它很可能无法验证,你不会看到这两个相反的。

一旦你有两个说话,逐步通过,直到你有你的Java客户端正确cofigured将每个安全因素的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top