Web services JAX-WS Web服务及其工作原理

Web services JAX-WS Web服务及其工作原理,web-services,servlets,glassfish,Web Services,Servlets,Glassfish,我读过甲骨文官方教程,但不完全理解。如果我们能回答我的问题,我很高兴 问题1.JAX-WSWeb服务和RMI在概念上有什么区别?RMI和JAX-WS都可以调用远程方法 问题2。为什么我们不能仅对可以由JAX-WS实现的特性使用servlet?只需声明initservlet的方法 问题3。据我所知,web服务JAX-WS无法在没有servlet的情况下获得http响应和http请求。它只是一组端点类,包含WebMethods及其实现。也就是说,如果我们想通过web客户端与服务进行通信,我们必须声明

我读过甲骨文官方教程,但不完全理解。如果我们能回答我的问题,我很高兴

问题1.JAX-WSWeb服务和RMI在概念上有什么区别?RMI和JAX-WS都可以调用远程方法

问题2。为什么我们不能仅对可以由JAX-WS实现的特性使用servlet?只需声明
init
servlet的方法

问题3。据我所知,web服务
JAX-WS
无法在没有servlet的情况下获得
http
响应和
http
请求。它只是一组端点类,包含
WebMethods
及其实现。也就是说,如果我们想通过
web客户端
与服务进行通信,我们必须声明适当的servlet以满足这一需求。此servlet将解析
http
请求,调用相应的
@WebMethod
生成并发送
http
响应。对吗

问题4.是否
WSDL
文档只是
xml
-其包含描述的文件可通过此Web服务和所有文件使用

问题5。来自官方教程:

A client creates a proxy (a local object representing the service) and then simply invokes methods on the proxy.

客户端是否根据服务的
WSDL
-文档创建代理?

我对答案的理解顺序如下:

  • RMI直接从其他Java虚拟机中的对象调用远程Java对象的方法,并使用对象序列化来封送和解组参数。请注意,所有这些都是特定于Java的。JAX-WS是一个Java API,用于利用标准(SOAP、WSDL等)促进更广泛的互操作性。因此,所有类型的应用程序都可以相互通信——而不仅仅是Java对Java

  • 对于JAX-WS,您正在使用servlet。只是规范在ServletAPI之上提供了一个抽象。处理抽象总是比处理低级实现细节更好。这让你可以自由地做一些有趣的事情,并帮助你避免犯错误

  • 我不太明白这个问题,但是
    HttpServlet
    是所有HTTP通信的JavaEE抽象。因此,JAX-WS、JAX-RS和其他规范依赖于HttpServlet。您不必指定servlet或任何东西。这是抽象使您摆脱的许多低级细节之一

  • WSDL是一种超越平台或实现的标准。换句话说,它不知道
    @WebMethod
    或任何其他特定于实现的细节。它只是定义了与服务交互的接口

  • 对。WSDL并不意味着人类可以使用。它们定义了与服务交互的接口,客户端(Java、.NET等)使用这些接口自动生成存根,供您调用WSDL中定义的服务。客户端为您生成SOAP请求,并为您处理SOAP响应