Web服务和基于文本的servlet之间的区别

x.5*_*509 5 web-services servlets

好吧,这可能是一个相当蹩脚和基本的问题,但由于我从来没有机会从事网络服务,所以它一直困扰着我.

我们可以通过非常基本/简单的实现(比如servlet)从我们的服务器获得相同的"文本库"响应(xml,json等),然后为什么有人必须开发Web服务.

Web服务通过简单的http响应提供的异常是什么?

Wil*_*ung 5

在基本层面上,你是完全正确的,从低层次来看,它只是套接字上的文本(XML).

对于简单的Web服务,servlet就足够了(我正在编写其中的一个).

然而,当谈论类似SOAP和WSS-*Web服务之类的东西时,Web服务工具包暴露为更高级别事务的标准中存在大量的样板处理和功能.

一个简单的例子是数据编组.如果您将其纯粹视为XML,那么您的服务基本上可以手工处理XML - 解析,评估,填充内部模型等.

将其与Java EE中的类似对比:

@WebService
public Person getPerson(String personId) {
    Person p;
    ...
    return p;
}
Run Code Online (Sandbox Code Playgroud)

Web服务堆栈将您的Person对象转换为符合SOAP的XML blob.它还将生成一个WSDL,您可以使用它来创建客户端代码(在许多平台上:.NET,PHP等)来制作Web服务代码.

最后,您的客户端和服务器只有几行代码,而框架会为您完成所有繁琐的工作解析,封送和发布.

因此,WS堆栈的价值在于它处理编写符合WSS的Web服务的大部分官僚作风.

它不是灵丹妙药,但对于许多现代实现来说,SOAP < - > SOAP远程处理可能主要是跨平台,拖放事件.