【发布时间】:2009-09-23 05:47:41
【问题描述】:
很抱歉提出这么幼稚的问题,但谁能向我解释一下 Java Web 服务 (jax-ws) 和 .Net Web 服务行为之间的区别?
【问题讨论】:
标签: java .net web-services
很抱歉提出这么幼稚的问题,但谁能向我解释一下 Java Web 服务 (jax-ws) 和 .Net Web 服务行为之间的区别?
【问题讨论】:
标签: java .net web-services
由于“网络服务”一词的含义略有不同,我假设我们谈论的是它的W3C definition。
这个定义基本上定义了规范:WSDL 和 SOAP。此外,还有许多称为 WS-* 的其他规范定义了 WSDL 和 SOAP 用于特殊目的(例如安全性)的特殊用法。
Java 和 .NET 都尝试实现符合这些规范的 Web 服务引擎。由于这些规范相当复杂,因此都会出错。此外,提供互操作性的目标并未完全实现。例如,SOAP 规范定义了一个可选的SOAPAction HTTP header,它在 JAX-WS 中没有使用,但在 .NET 中是必需的(不知道当前版本是否仍然如此)。
所以Metro(Metro 是使用 JAX-WS 的 Web 服务引擎)网站提到了与 .NET 的常规互操作性测试
顺便说一句,JAX-WS 是 specification 的名称,也是 reference implementation 的名称。
【讨论】:
理想情况下,网络服务的理念是不让您有机会提出这样的问题。 :)
【讨论】:
客户端不应该能够区分使用任何一种技术实现的 Web 服务,或者使用任何其他技术。 Web 服务的承诺是它们应该可以跨许多平台进行互操作,并且服务提供者可以使用他们喜欢的任何技术,因此 Java 商店会使用 Java,例如 JAX-WS,而 .NET 会使用他们的技术——客户只是不这样做'不在乎,他们使用 WSDL。
当我们摆脱基本的 SOAP/HTTP Web 服务并使用安全、事务、消息传递等标准(整个 WS-* 空间)时,事情会变得更加有趣。理想情况下,实现透明度仍然是正确的,但您不能指望任意实现者支持您想做的事情。 WS-I 组织及其参与的供应商做了大量工作来确保互操作性,因此即使对于这些更高级的 WS-* 标准来说,情况也不错。
【讨论】:
小心,wcf 与 Metro 相比,jax-ws 只是基础知识,而不是所有 ws* 的东西。
Metro和WCF实现了互操作标准wse 3。可以通过xml相互通信没有任何问题,只是你不知道服务是基于.net还是基于java。
问候
【讨论】: