WEB开发网
开发学院软件开发Java Java Web 服务: Axis2 中的 JAXB 和 JAX-WS 阅读

Java Web 服务: Axis2 中的 JAXB 和 JAX-WS

 2009-11-05 00:00:00 来源:WEB开发网   
核心提示: 如果将 清单 2 与 “Java Web Services: Axis2 Data Binding” 中的客户机代码示例加以比较,会发现它非常类似于 JiBX 和 Axis Data Binding (ADB) 封装例子,Java Web 服务: Axis2 中的 JAX

如果将 清单 2 与 “Java Web Services: Axis2 Data Binding” 中的客户机代码示例加以比较,会发现它非常类似于 JiBX 和 Axis Data Binding (ADB) 封装例子,主要区别在于 JAXB 封装器类使用 Java 5 类型列表(typed lists)而不是数组(JiBX 数据绑定支持的另一个替换选择,但是不受 ADB 支持)。

服务器端使用

库服务的服务器端代码包含两个类,其中一个实际实现库处理,另一个可适应 Axis2 所期望的服务接口。实际的实现代码对于不同的数据绑定几乎都是相同的,只需要根据生成的数据模型表示做一些微小的修改。清单 3 展示了更加有趣的服务接口类。和在客户端一样,封装的接口要求应用程序代码从收到的封装器对象中提取数据,并构造将要发送的封装器对象。


清单 3. JAXB 服务器代码

public class JaxbLibraryImpl extends JaxbLibrarySkeleton 
{ 
  private final BookServer m_server; 
   
  public JaxbLibraryImpl() { 
    m_server = new BookServer(); 
  } 
   
  public AddBookResponse addBook(AddBook req) throws AddDuplicateFault { 
    BookInformation prior = m_server.getBook(req.getIsbn()); 
    if (prior == null) { 
      BookInformation book = new BookInformation(); 
      book.getAuthor().addAll(req.getAuthor()); 
      book.setIsbn(req.getIsbn()); 
      book.setTitle(req.getTitle()); 
      book.setType(req.getType()); 
      AddBookResponse rsp = new AddBookResponse(); 
      rsp.setAddBookReturn(m_server.addBook(book)); 
      return rsp; 
    } else { 
      AddDuplicateFault e = 
        new AddDuplicateFault("Book already present with matching ISBN"); 
      AddDuplicate ad = new AddDuplicate(); 
      ad.setBook(prior); 
      e.setFaultMessage(ad); 
      throw e; 
    } 
  } 
 
  public GetBookResponse getBook(GetBook req) { 
    BookInformation book = m_server.getBook(req.getIsbn()); 
    GetBookResponse rsp = new GetBookResponse(); 
    rsp.setGetBookReturn(book); 
    return rsp; 
  } 
 
  public GetBooksByTypeResponse getBooksByType(GetBooksByType req) { 
    GetBooksByTypeResponse rsp = new GetBooksByTypeResponse(); 
    rsp.getGetBooksByTypeReturn().addAll(m_server.getBooksByType(req.getType())); 
    return rsp; 
  } 
 
  public GetTypesResponse getTypes(GetTypes req) { 
    GetTypesResponse rsp = new GetTypesResponse(); 
    rsp.getGetTypesReturn().addAll(m_server.getTypes()); 
    return rsp; 
  } 
}

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

Tags:Java Web 服务

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