0

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

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

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

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

对这种方法的任何评论将不胜感激。

4

2 回答 2

2

无需使用 if-else 即可实现这一点,所有客户端/实现(.NET 和 Java)都必须使用相同的合同(WSDL),这应该不是一个大问题。

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

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

于 2012-07-08T15:35:45.333 回答
1

首先从 WSDL 开始。如果你不知道这意味着什么,请谷歌它。

这并不能保证互操作性,但它会让你在这条道路上走得很远。

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

于 2012-07-03T15:32:20.183 回答