当前位置: 首页 > 知识库问答 >
问题:

用于RESTful Web服务的JAX-WS与JAX-RS

松旭
2023-03-14

你好,我曾与JAX-WS合作开发基于SOAP的网络服务。现在我想使用REST,因为正如我从这里学习的那样,REST比SOAP有优势。

但从不同的文章中,我知道我们也可以从JAX-WS创建RESTful Web服务。但是大多数人说我们应该使用JAX-RS而不是JAX-WS。

我的问题是JAX-WS RESTful webservice和JAX-RS(泽西)之间有什么区别。JAX-RS相对于JAX-WS的优势是什么?为什么我们应该将JAX-RS用于RESTful Web服务?

提前谢谢。

共有1个答案

许永年
2023-03-14

JAX-WS适用于基于XML的Web服务,例如SOAP。JAX-RS没有相同的限制。

JAX-WS通常面向具有定义良好的契约(WSDL)的服务器到服务器交互,并且通常在服务和客户端来自不同的组时。这是一种资源密集型的交互方式,因此在网络或客户端设备性能不理想的情况下,客户端到服务器的交互是不可行的。

JAX-RS面向客户机到服务器的交互,尽管服务器到服务器是可以的。由于它几乎没有服务义务,因此可以根据客户的需求进行调整。

JAX-RSAPI只提供代码优先的方法,而JAX-WS允许使用WSDL文件进行代码优先(通常不推荐)和契约优先(通常推荐)。

JAX-RS 2.0引入了客户端API,它是HttpUrlConnection的智能包装器,具有更多的映射功能,JAX-WS也是一个包装器,但它在参考实现中处理的数据只是XML。

JAX-RS的优点是创建API,这些API更易于在不同浏览器和移动设备中创建和摘要消息,即JSON结构。它没有引入信封的概念,而是使用HTTP。它不引入加密安全性,而是使用HTTPS。

JAX-WS虽然在HTTPS上运行,但用于密码学,它使用WS-SecurityStrategy等提供了额外的安全性。此外,契约是使用WSDL牢固建立的,并且可以使用诸如DataPower的ESB在应用程序外部进行验证。

JAX-WS通常面向具有定义良好的契约(WSDL)的服务器到服务器交互,并且通常在服务和客户端来自不同的组时。这是一种资源密集型的交互方式,因此在网络或客户端设备性能不理想的情况下,客户端到服务器的交互是不可行的。

JAX-RS面向客户机到服务器的交互,尽管服务器到服务器是可以的。客户端和服务器之间唯一的契约义务是消息和请求头。由于它几乎没有服务义务,因此可以根据客户的需求进行调整。

然而,使用RESTful服务API类似于进行Ruby和Python之类的元编程,这会将问题延迟到运行时,因为双方没有商定并在技术上强制执行的定义模式。因此,我不建议在任何地方都使用RESTful服务,但如果我能够控制这两个方面,我会推荐使用RESTful服务,这通常发生在您构建一个使用静态HTML/CSS/JS并与RESTful服务器进行数据对话的web应用程序时。

 类似资料:
  • 我需要调用WildFly 8上可用的JAX-WS Web服务。我从一个简单的例子开始。这是我的网络服务: WSDL 可在以下网址获得: http://localhost:8080/DemoWS/HelloWorld?wsdl 看看Tomcat-CXF的例子,我编写了以下路由: 通过在 Camel 上下文中运行上述代码,将返回以下错误: serviceClass=com.sample。HelloWo

  • JAX-WS (JavaTM API for XML-Based Web Services)规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。 在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要

  • Apache CXF WebService 没有话说,享受沉默 showcase项目已演示了JAX-WS2.0 + CXF 的最重要特性, 其中客户端在测试用例里. SOAP这个名字,本身就是个笑话,一点都不Simple。其他一些WS-*协议,包括安全,附件等都不再看好,因此SpringSide4.0没什么更新。 测试工具依然是SoapUI。 Tips 1. CXF自动生成的WSDL与WADL文件

  • 我有一个基于ofbizsoap的web服务,它是公开的(可以接受请求),并且生成了WSDL代码和WSDL URL。我的问题是,有没有一种方法可以使用CXF Java客户端或JAX-WS客户端使用此web服务? 总的来说,我希望能够将客户机添加到Mule esb组件中,作为Mule流的一部分。我可以使用AXIS2调用Obiz web服务,但Mule ESB似乎不支持AXIS2,这给我带来了另一个问题

  • 问题内容: 有人可以为入门JAX-WS提供一些好的教程吗?使用wsgen等各种工具… 问题答案: 您可以从这里开始: Java SE 6平台简介JAX-WS 2.0,第1部分 Java SE 6平台简介JAX-WS 2.0,第2部分 NetBeans对JAX-WS确实具有很好的支持,并且提供了许多教程,例如: JAX-WS Web服务入门 Glen Mazza在JAX-WS RI / Metro上

  • JAX-WS教程提供了JAX-WS API的概念和示例。 此JAX-WS教程专为初学者和专业人士设计。 有两种方法可以用于开发JAX-WS,它们分别如下: RPC风格 文档风格 如下图所示 - RPC与文档样式Web服务之间的区别 https://www.xnip.cn/web_service/difference-between-rpc-and-document.html JAX-WS RPC样