WEB开发网
开发学院软件开发Java JAX-RPC 与 JAX-WS 的比较,第 3 部分:服务端点接... 阅读

JAX-RPC 与 JAX-WS 的比较,第 3 部分:服务端点接口

 2009-11-03 00:00:00 来源:WEB开发网   
核心提示: 比较操作映射现在您已经看到了这些接口,下面再对各种操作的映射进行比较,JAX-RPC 与 JAX-WS 的比较,第 3 部分:服务端点接口(3),可以使用不同的方法来设计表示具有类似语义的 Web 服务的 WSDL 文档,文章 Which style of WSDL should I use?

比较操作映射

现在您已经看到了这些接口,下面再对各种操作的映射进行比较。可以使用不同的方法来设计表示具有类似语义的 Web 服务的 WSDL 文档。文章 Which style of WSDL should I use? 提供了关于各种不同风格的 WSDL 文档的概述,以及如何确定哪一种风格更适合您。

现在,让我们来研究 JAX-RPC 和 JAX-WS 如何映射到每种 WSDL 风格。

研究 document/literal 包装模式

清单 1 中的 WSDL 使用了 document/literal 包装模式进行格式化。清单 4 和 5 是 JAX-RPC 和 JAX-WS 中对相同的包装操作的映射。请注意,JAX-WS 向方法中添加了 @RequestWrapper 和 @ResponseWrapper 注释。这些注释为用作操作包装器的元素和为这些包装器元素生成的任何 Java Bean 提供了附加的元数据。这些注释都是可选的。


清单 4. JAX-RPC 完整的 HelloWorld SEI
package com.ibm.samples; 
 
public interface HelloWorld extends java.rmi.Remote { 
  public java.lang.String hello(java.lang.String name) throws java.rmi.RemoteException; 
}


清单 5. JAX-WS 完整的 HelloWorld SEI
package com.ibm.samples.helloworld; 
 
import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebResult; 
import javax.jws.WebService; 
import javax.xml.ws.RequestWrapper; 
import javax.xml.ws.ResponseWrapper; 
 
@WebService(name = "HelloWorld", targetNamespace = "urn:samples.ibm.com/HelloWorld") 
public interface HelloWorld { 
 
  @WebMethod(action = "urn:samples.ibm.com/HelloWorld/hello") 
  @WebResult(name = "response", targetNamespace = "") 
  @RequestWrapper(localName = "hello", 
    targetNamespace = "urn:samples.ibm.com/HelloWorld", 
    className = "com.ibm.samples.helloworld.Hello") 
  @ResponseWrapper(localName = "helloResponse", 
    targetNamespace = "urn:samples.ibm.com/HelloWorld", 
    className = "com.ibm.samples.helloworld.HelloResponse") 
  public String hello( 
    @WebParam(name = "name", targetNamespace = "") 
    String name); 
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:JAX RPC JAX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接