我有N个“客户”,每个人都必须为我的.Net应用程序实现一个Web服务。我不想为每个客户端添加服务引用,因为它们可以随时更改,以及URL,因此我将URL存储在数据库中,并根据我要访问的客户端以dinamycically方式创建端点。
我想知道是否必须强迫我的客户编写相同类型的服务(WCF或JAX-WS),或者我仍然可以连接到一个或另一个而不用编写某种条件逻辑。
ie. If JAX-WS then "do this" ELSE IF WCF "do other stuff"
此外,我想知道添加WS - *(wshttpbinding)安全性是否会增加两种技术的互操作性(或可互换性)的复杂性。
对此方法的任何评论都将不胜感激。
答案 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- *,是的,这引入了额外级别的互操作挑战。