JAX-WS Web Service,它是如何工作的

时间:2013-11-28 01:00:40

标签: web-services servlets glassfish

我读过官方的oracle教程,但是不明白这一点。如果我们回答我的问题,我很高兴。

问题1。 JAX-WS Web服务和RMI之间的概念差异是什么? RMI和JAX-WS都可以调用远程方法。

问题2。为什么我们不能仅将servlet用于可由JAX-WS实现的功能?只需声明init servlet的方法。

问题3。据我所知,例如,网络服务JAX-WS无法获得http响应,http无法请求servlet。它只是一组端点类,其中包含WebMethods及其实现。即如果我们想通过web-client与服务进行通信,我们必须为此需要声明适当的servlet。此servlet将解析http请求,调用相应的@WebMethod生成并发送http响应。这是对的吗?

问题4。 WSDL文件是xml - 此WEbService包含的描述是否可用@WebMethod的所有文件?

问题5。来自官方教程:

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

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

1 个答案:

答案 0 :(得分:0)

我按顺序接受答案:

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

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

  • 我不太关注这个问题,但HttpServlet是所有HTTP通信的Java EE抽象。所以JAX-WS,JAX-RS和其他规范依赖于HttpServlet。您不必指定servlet或任何东西。这是抽象的许多低级细节之一。

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

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