Spring Framework为应用程序提供了许多技术,可以通过HTTP进行相互通信。
他们之间有什么不同?什么标准决定选择哪一个?
答案 0 :(得分:1)
如果您正在集成自己的应用程序并且您可以严格控制应用程序客户端和连线(例如企业内部网),那么请使用HTTP Invoker - 它对应用程序非常透明且易于设置。具有不可靠的客户端身份验证(没有PKI身份验证)的Internet上的Http调用者可能不是一个好主意,在调用者中使用了security problems java序列化。
如果调用者不适合您,并且它是您自己的应用程序 - 那么请考虑REST。
我认为基于WSDL的服务有利于外部集成 - 您可以使用严格的规则定义协议。
答案 1 :(得分:1)
JAX-WS是由JCP(Java Community Process)维护的标准,每个全功能应用程序服务器都实现它(或者至少为它提供实现)。它易于使用(您只需要在服务类端点中添加一些注释),并且您不必担心实现(并且您的应用程序将在其中携带较少的依赖项)。
当JAX-WS正在进行中(或者从未存在过)时,Spring-WS很普遍。它实现了与JAX-WS相同的功能,但它有点麻烦。根据我的经验,它为后者的利益而失去了擅长。
基于HTTP的服务(作为HTTP调用者和REST)声称比JAX-WS更轻量级(因为端点不需要处理SOAP信封),但不像基于WSDL的那样强类型。
当我必须选择时,如果基于REST的方法没有充分理由,我通常会决定使用JAX-WS。我不喜欢HTTP Invoker,因为它存在安全问题(即使在讨论内部网时),但我认为这是一种个人选择。