问题 在Java中使用WCF WsHttpBinding WebService


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

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

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

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

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

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


8041
2017-07-16 18:05


起源



答案:


你的问题是 JAX-WS 不支持wsHttpBinding中使用的相同WS协议。你需要使用 WSIT 代替。 WSIT作为一部分提供 地铁 图书馆,也可以 Glassfish的

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


14
2018-01-29 17:26





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

一旦你进行了两次讨论,逐步完成添加每个安全元素,直到你的Java客户端正确配置为止。


0
2017-07-16 23:46



如上所述,我已经关闭了所有安全性。 - vicsz


答案:


你的问题是 JAX-WS 不支持wsHttpBinding中使用的相同WS协议。你需要使用 WSIT 代替。 WSIT作为一部分提供 地铁 图书馆,也可以 Glassfish的

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


14
2018-01-29 17:26





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

一旦你进行了两次讨论,逐步完成添加每个安全元素,直到你的Java客户端正确配置为止。


0
2017-07-16 23:46



如上所述,我已经关闭了所有安全性。 - vicsz