对于这样一个天真的问题感到抱歉,但有人可以向我解释Java Web服务(jax-ws)和.Net Web服务行为之间的区别吗?
答案 0 :(得分:2)
由于术语“网络服务”的含义略有不同,我假设我们正在讨论它的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。
答案 1 :(得分:2)
理想情况下,网络服务的理念是不给你机会提出这样的问题。 :)
答案 2 :(得分:0)
客户端不应该能够在使用这两种技术实现的Web服务之间,或者使用任何其他技术。 Web服务的承诺是它们应该可以在许多平台上互操作,服务提供商可以使用他们喜欢的任何技术,因此Java商店将使用Java,例如JAX-WS,而.NET则使用他们的技术 - 客户只需要'他们使用WSDL。
当我们摆脱基本的SOAP / HTTP Web服务并使用安全性,事务,消息传递等标准(整个WS- *空间)时,事情会变得更有趣。理想情况下,实现透明度仍然是正确的,但您不能指望任意实现者支持您想要做的事情。 WS-I组织及其参与的供应商为确保互操作性做了大量工作,因此即使对于这些更高级的WS- *标准,这个故事也不算太糟糕。
答案 3 :(得分:0)
小心点,wcf比较地铁,jax-ws只是基础知识,而不是所有的ws *东西。
Metro和WCF实现了互操作标准3.并且可以通过xml相互通信而没有任何问题,您只是不知道该服务是.net还是基于java。
此致