(消费)可互换的WCF和JAX-WS服务

时间:2012-07-02 21:54:14

标签: c# .net wcf jax-ws

我有N个“客户”,每个人都必须为我的.Net应用程序实现一个Web服务。我不想为每个客户端添加服务引用,因为它们可以随时更改,以及URL,因此我将URL存储在数据库中,并根据我要访问的客户端以dinamycically方式创建端点。

我想知道是否必须强迫我的客户编写相同类型的服务(WCF或JAX-WS),或者我仍然可以连接到一个或另一个而不用编写某种条件逻辑。

ie. If JAX-WS then "do this" ELSE IF WCF "do other stuff"

此外,我想知道添加WS - *(wshttpbinding)安全性是否会增加两种技术的互操作性(或可互换性)的复杂性。

对此方法的任何评论都将不胜感激。

2 个答案:

答案 0 :(得分:2)

可以在不使用if-else的情况下实现它,所有客户端/实现(.NET和Java)必须使用相同的合同(WSDL),这不应该是一个大问题。

对于WS- *,这很容易只使用.NET BUT很难(并非不可能)让它从.NET工作到Java所以我通常最终使用带有basicauthentication(用户名/密码)的SSL进行basicHttp或者证书。这比从.NET到Java的wsHttpBinding容易得多。

Cheeso说,从WSDL开始,即在.NET中创建客户端和服务,这将为您提供WSDL,然后使用该WSDL并使用它来实现Java客户端。

答案 1 :(得分:1)

首先使用WSDL。如果你不知道这意味着什么,谷歌吧。

这并不能保证互操作性,但它会让您在路径上走得更远。

至于添加WS- *,是的,这引入了额外级别的互操作挑战。