我开始选择创建网络服务的方法,所以我找到了两种方法:
1)使用包javax.jws,注释@WebService:
@WebService(...)
public class MyServiceImpl {
2)另一种方法是使用带有注释@Path:
的javax.ws@Path("/MyService")
public class MyServiceImpl
据我所知,使用第二种解决方案更简单,因为当我需要创建客户端时,我只需要进行HTTP调用(GET / POST)。使用第一个解决方案,我需要创建一个WSDL客户端,更复杂的解决方案。
所以,我想知道使用FIRST SOLUTION的优势是什么。
答案 0 :(得分:0)
当必须建立正式合同来描述Web服务提供的接口时, SOAP / WSDL 样式很有用.Web服务描述语言(WSDL)描述了消息,操作等详细信息,Web服务的绑定和位置。
当应用程序体系结构需要处理异步处理和调用时(例如,使用JAX-WS可以创建异步客户端),SOAP / WSDL样式也很有用。
SOAP / WSDL样式的缺点是
其复杂性:创建客户端需要工具 带宽更重:SOAP要求每个请求或响应都有一个沉重的XML包装器 复杂的安全规则
REST风格的优点是
简单:可以从任何浏览器访问REST客户端(但是,这仅适用于GET方法。数据创建请求也需要XML包装器)。 带宽更轻:线上的数据通常是裸xml元素(不包含在<Envelope><Body>
标签内)。
可以使用http标准设置REST应用程序安全规则:管理员(或防火墙)可以通过分析请求中使用的HTTP命令来识别每条消息的意图。
例如,GET请求始终可以被认为是安全的,因为根据定义,它不能修改任何数据。
REST风格的缺点是它仍然无法满足所有业务需求
尚未接受正式REST服务描述的通用标准 REST请求(尤其是GET方法)不适合大量数据 REST不涵盖所有Web服务标准,如事务,安全性,寻址,信任,协调,